Using variables: Statement must appear within on handler

I would like to use variables in my flash app. The app is quite simple, has many buttons, and on each of those buttons I have a simple script: on-rollover and on-release. For both actions I use the same value, which I want to put in a variable. The following script results in an error message: Statement must appear within on handler. When I have to declare the variable inside the on-handler, I have to declare it twice, which makes it useless as I have to enter the value twice. How can I get this working?
country = "uk"
on (rollOver)
    gotoAndPlay(country)
on (release)
    getURL("/"+country+"/", "_self");

try:
Select a frame on the timeline where your buttons live and then move the buttons handlers there:
e.g.
myButton1.onPress = onPressFunction
myButton2.onPress = onPressFunction
myButton3.onPress = onPressFunction
etc.etc.
myButton1.onRelease = onReleaseFunction
myButton2.onRelease = onReleaseFunction
myButton3.onRelease = onReleaseFunction
etc.etc.
country = "uk"
function onPressFunction(){
     this.gotoAndPlay(country)
function onReleaseFunction(){
    getURL("/"+country+"/", "_self");
If you use this approach you MUST remove the scripts from buttons themselves.
I hope this helps.

Similar Messages

  • Statement must appear within on Handler

    Ok. So there are a lot of things asking about this already,
    but I keep getting the "statement must appear within on handler"
    error when I try to add a gotoAndPlay event to my button...and
    reading other peoples problems and solutions has not helped me at
    all. I have attached my code, but what I am really confused about
    is what I am supposed to call everything.

    so now I have it attached to a frame in a separate layer
    (after reading some other threads) and i'm getting an Expected a
    field name after '.' operator.

  • Error: Statement must appear within on/onClipEvent handler

    I'm getting this error Scene=Scene1, Layer=Layer 3, frame=1,
    Line1
    Statement must appear within on/onClipEvent handler
    shape.swapDepths(_root.getNextHighestDepth());
    i'm using this code:
    shape.swapDepths(_root.getNextHighestDepth());
    //shape is a movie clip
    stop();
    this.attachMovie('bcPlayer','bcPlayerInstance',this.getNextHighestDepth());
    //bcPlayerInstance._xscale = 75;
    //bcPlayerInstance._yscale = 75;
    bcPlayerInstance._y = -50;
    bcPlayerInstance._x = -5;
    //bcPlayerInstance is a movie clip
    please help anyone knows what i'm doing wrong

    >>Actually swapDepths can take either a moveclip or a
    number. That isn't the
    >>problem.
    So it can! Sorry, just never used it with anything besides a
    clip ref, and
    even then I really don't use it much as I like to keep track
    of things
    myself.
    Thanks
    Dave -
    www.offroadfire.com
    Head Developer
    http://www.blurredistinction.com
    Adobe Community Expert
    http://www.adobe.com/communities/experts/

  • Statement must appear within on/onClipEvent handler

    Here's my code on my main timeline; and it makes each movie
    clip (A, B, C, D, E) 'glow' when mousing-over.
    Why do I keep getting this error message?
    Thanks

    I figured out what I did wrong there kglad. You were right -
    I had the code attached to a movie clip (the parent of the movie
    clip that the correct code is on the timeline of). In other words,
    I had code in two different places, so eliminated the code from the
    parent movie clip and the error disappeared.
    Thanks!

  • Statment must appear within on hanlder....

    when i keep this code on my button in action.. "statment must appear within on handler" erro is generating.....
    what should i do for this .,, my code is....
    nxt.onRelease = function(){
              newthumb();

    Do not put that code on your button.  Put it in the timeline that contains the button that has an instance name of "nxt" - you can create a layer specifically for actionscript and place it there so that it is easy to find.  If you do it correctly a lowercase "a" should appear in the timeline frame where you place it.  I deally the newthumb() function should also be in that same timeline frame.
    In AS2 you can place code on objects but it is written differently.  Doing that is considered bad practice though because it makes code harder to find and can confuse targeting things properly.
    The code you show is the timeline version which is better. 

  • Using @variable('BOLanguage') prompts in webi documents

    Hello,
    I am using @variable('BOLanguage') in the universe to handle multilinguism.
    Unfortunately, when running my webi document, the variable prompts whereas it is a BO variable.
    On top of that, let us suppose, I enter "test" as a value for this variable, when it is evaluated, the variable is evaluated as 'fr' or 'en' but not as 'test' which proves that this variable should not prompt.
    Does anyone have any idea about how to prevent 'BOLanguage' from prompting.
    Thanks in Advanced
    Sylvie

    Oh, ok that's interesting. I went back to find the documentation but couldn't find anything specific to BOLANGUAGE, just to @Variable in the Universe designers guide.
    http://help.sap.com/businessobject/product_guides/boexir31SP2/en/xi31_sp2_designer_en.pdf
    It mentions entering -var parameter at the command line when starting BO to get access to other variables, and the syntax to use for @variable. It also mentions language variables like 'Preferred Viewing Locale', but nothing about 'BOLanguage'. Anyway, looks like you have answered your own question.
    Thanks

  • Using variables in a fix statement

    I am using a nested fix statement on a dense member and would like to use variables to represent certain intersections. Since the variables need to be within a calc member bloc, where do I place them? Do they go inside the fix statement witht the parenthesis just around teh variables or the last parenthesis at the end of the fix statement?

    If you mean substitution variables, they are defined outside the calc script at a dp, app, or server level. They simply substitute their textual value at the place they appear in the script. If the substitution results in a valid calc script where it occurs, then you are fine. So FIX ( &subvar ) could be valid.If you mean temporary variables, they hold intermediate calculational values. The docs say "VAR commands can only be assigned values within a member calculation or when VAR is declared. " That is, you may either say 'VAR tempvar = 1000; ' [declare and set value] or 'VAR tempvar;' [declare only, often at the start of your script] then somewhere in the script 'tempvar = expression;' [value gets assigned]. This last expression would not appear within the parentheses of a FIX ( members ) statement, but somewhere within the FIX block. You would never say FIX ( tempvar ) as it is not an outline member.

  • Using variables within GETurl

    Having issues with getting a simple script working...
    I've created a 'flashvars' tag in my embed code (aid=test), which I simply wish to add to the end a GetUrl statement, contained in within a button (which is on the first level of the flash movie). This is the code I've added to the button...
    on (release) {
        getURL("http://www.platinumselect.com?id="+aid);
    But this doesnt seem to work!? Is there anything else I need to do?
    Thanks in advance! (p.s. using actionscript 2.0)

    Where are the 3 places?? I've got it in two at the minute.
    Date: Tue, 10 Nov 2009 07:53:55 -0700
    From: [email protected]
    To: [email protected]
    Subject: Using variables within GETurl
    in as2, there is no LoaderInfo class and you don't need to do anything in flash to parse the flashvars.
    but, as i mentioned in a duplicate post, you do need to define your flashvars in 3 places in your embedding html file.  failure to do that is the most common reason for a problem with flashvars.
    >

  • INSERT statement in JSP using variables

    People,
    I am having problems inserting data from JSP into a MySQL database.
    For example the following works perfectly fine:
    String query = "INSERT INTO `test2` (`name`, `topic`, `message`) VALUES ('Jane Doe', 'Hi there', 'Example message')";
    But, however the problems take place if I try to use variable values as parameters instead of pre-defined strings.
    E.g. the following (among a 100 other ways I have tried by now) does not work):
    String query = "INSERT INTO `test2` (`name`) VALUES (`" + userName +"`)";
    stmt.executeUpdate(query);
    This did not work either:
    PreparedStatement PStmt = myConn.prepareStatement("insert into (`name`) values (?)");
    PStmt.setString(1, new String("`" + userName + "`"));
    PStmt.executeUpdate();
    I have tried without parenthesis etc. but what I pretty much get every time is:
    500 Servlet Exception
    java.sql.SQLException: Column not found: Unknown column 'Jane' in 'field
    list'
         at org.gjt.mm.mysql.MysqlIO.sendCommand(MysqlIO.java:508)
         at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(MysqlIO.java:561)
         at org.gjt.mm.mysql.MysqlIO.sqlQuery(MysqlIO.java:646)
         at org.gjt.mm.mysql.Connection.execSQL(Connection.java:973)
         at org.gjt.mm.mysql.Connection.execSQL(Connection.java:897)
         at org.gjt.mm.mysql.Statement.executeUpdate(Statement.java:230)
         at org.gjt.mm.mysql.jdbc2.Statement.executeUpdate(Statement.java:99)
         at sql3_jsp._jspService(/sql3.jsp:49)
         at com.caucho.jsp.JavaPage.service(JavaPage.java:87)
         at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81)
         at com.caucho.jsp.Page.service(Page.java:474)
         at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:166)
         at com.caucho.server.http.Invocation.service(Invocation.java:277)
         at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
         at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:334)
         at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:266)
         at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
         at java.lang.Thread.run(Thread.java:484)
    I do not know much about SQL or JDBC but the material I have seen makes me believe
    that I am pretty much doing the right thing.
    What is the right way of doing this?
    I would greatly appreciate any feedback.

    Hi,
    I think i know the problem.
    Take a look on your String code :
    "INSERT INTO `test2` (`name`, `topic`, `message`) VALUES ('Jane Doe', 'Hi there', 'Example message')";
    it is not necessary to put QUOTE for the tablename and the fields.
    my code work with :
    String query = "INSERT INTO test2 VALUES( ' " + 123 + " ' ) ";
    ( if you inserting into all fields in your table ) OR
    String query = "INSERT INTO test2 ( abc ) VALUES( ' " + 123+ " ' ) ";
    ( if you need to select certain fields ).
    or you can try to refer to :
    http://www.w3schools.com/sql/sql_insert.asp
    hope this help.

  • Using variable in from close of select statement for LOV

    Hi all,
    I had a select list based on a query with a variable in it for the database schema. Something like this:
    "select name, id from &SCHEMA..countries order by name". This warked in version 1.4.4..., I don't remember the rest. Now we upgraded to version 1.6.0.00.87 and I am trying to change the condition for this select item but I recieve this error:
    1 error has occurred
    LOV query is invalid, a display and a return value are needed, the column names need to be different. If your query contains an in-line query, the first FROM clause in the SQL statement must not belong to the in-line query.
    Whatever I'm trying to change for this item, it always gives me this error when I click on "Apply Changes" button. Everything works fine when I remove &SCHEMA. from the query and instead write directly the database schema name.
    Can you help me?

    Sabiha,
    This is a case where the builder cannot parse the query at design time because there is no state for &SCHEMA. in the session. You can try this trick, change the lov query to:  if htmldb_application.get_current_flow_sgid(:APP_ID) = htmldb_application.get_sgid then
        return 'select name d, id r from &SCHEMA..countries order by name';
      end if;Notice also the addition of aliases for the column names.
    Scott

  • Error: "Variable State has been used outside the reusable components"

    When I open a query in the ad hoc query designer I get several error messages like "Variable State has been used outside the reusable components."  I don't what this means or how to fix it.
    "State" is one of the variables used.  And there is a error for every variable that is used.
    All the variables are in the free characteristics.
    When I open the query in Query Designer, it is ok.
    Any ideas?

    Hi Fong,
    PLease check the following link:
    http://help.sap.com/saphelp_nw04/helpdata/en/1f/03223c5f00612be10000000a11402f/content.htm
    It states that:
    You cannot integrate variables into the query directly.
    However, you can use variables in reusable structures, or restricted or calculate key figures, which are used in the Ad-hoc Query Designer
    Hope this helps...

  • Maxl - can you use variables in iferror statements

    hi guys,
    A quick one:
    Can you use variables when doing error handling? I assume the answer is yes, but just wanted to make sure.
    example:
    set app1 = Test;
    set app1_db1 = Test;
    alter database $app1.$app1_db1 force archive to file "C:\\EssbaseBackup\\$app1\\$app1_db1\\$app1_db1.arc";
    iferror 'Bk_$app1.$app1_db1_Error';
    define label 'Bk_$app1.$app1_db1_Error';
    exit 10;
    I am putting error handling into my script and want to double check before I go about making the alterations.
    Many thanks,
    Russell
    Edited by: RussellH-C on 26-Apr-2013 04:45

    You don't need to split the files. Create a Maxl with parameters and then call it in a bat file.
    In the bat you can then check for Error.
    essmsh -D "%HYP_MONTH_SCRIPTS_DIR%\Maxl_Files\HYP_ESS_Archive.msh" %DECRYPTKEY% Appname1 Dbname1
    call :archiveerrcheck
    essmsh -D "%HYP_MONTH_SCRIPTS_DIR%\Maxl_Files\HYP_ESS_Archive.msh" %DECRYPTKEY% Appname2 Dbname2
    call :archiveerrcheck
    archiveerrcheck:
         SET FILE=%MAXLLOG_DIR%\Archive.log
         findstr /R "\<ERROR" %FILE% > ESSErrCheck
          for /F %%A in ("ESSErrCheck") do If %%~zA NEQ 0 (
            call :datestamp
            echo  Error in Archive Process......................... > %ESSLOG%
            copy %FILE% %HYP_MONTH_ERR_DIR%\Essbase\MaxL\Maxl_Error.log
            DEL /Q ESSErrCheck
            call :exit_process
           ) else (
                   echo  %DTSTMP%  Log Out Process was successfull......................... >> %ESSLOG%
                   call :remove_file ESSErrCheck
    GOTO EOF
    :EOFRegards
    Celvin
    http://www.orahyplabs.com

  • Filter data using where statement : need to filter a variable if it starts

    Hi,
    in my loop statment , i am using a where condition.
    a variable has numbers and characters , i want to filter the variable using where statement identifying if it is acharacter not to enter into the loop.
    any suggestions . Thanks in advance.
    regards,
    Ry

    Hi ,
    try like this
    data:l_file_data(20) type c,
    oref   TYPE REF TO cx_root.
    data: l_amount type p decimals 2.
    l_file_data = '12A3'.
    try.
    l_amount = l_file_data.
    catch cx_root into oref.
    endtry.
    if oref is not initial.
    write: 'Miss Match'.
    endif.
    regards
    Prabhu

  • Is it possible to use Apple Configurator to do a remote wipe of an iPad? Or must I use the profile manager tool within OS X Server?

    Is it possible to use Apple Configurator to do a remote wipe of an iPad? Or must I use the profile manager tool within OS X Server?

    no apple configurator connects via usb
    you'll need a MDM solution such as OSX server profile manager for remote wipe
    OTA pushing profies remote wipe etc
    you could use icloud for remote wipe

  • SQL Task Expression: SQL Command using variable tables

    Hello,
    I've got a question I hope someone could help me out with. I'm working on a SSIS project that basically synchronises logins of a Source and Destination server that are part of an AlwaysOn Cluster.
    The idea is as followed: On the source server there are variable tables created named Logins_<SourceServerName>_To_<DestinationServerName> for example. This one is filled with all the login information from that server, then on the Destination
    server the same table is created and the data is transfered. The Source and Destination server names are project variables.
    Once all data is copied I use a set of code from the dba_CopyLogins script I got from SQLSoldier (http://www.sqlsoldier.com/wp/sqlserver/transferring-logins-to-a-database-mirror) to create the missing logins on the Destination server.
    What I've found is that I can't use expressions to handle the code, at least I haven't found a way yet, expression evaluation will give an error on (for example) the following code:
    Begin
    Set @SQL = 'Create Login ' + quotename(@LoginName)
    If @Type In ('U', 'G')
    Begin
    Set @SQL = @SQL + ' From Windows;'
    End
    Else
    Begin
    Set @PasswordHashString = '0x' +
    Cast('' As XML).value('xs:hexBinary(sql:variable("@PasswordHash"))', 'nvarchar(300)');
    Set @SQL = @SQL + ' With Password = ' + @PasswordHashString + ' HASHED, ';
    Set @SIDString = '0x' +
    Cast('' As XML).value('xs:hexBinary(sql:variable("@SID"))', 'nvarchar(100)');
    Set @SQL = @SQL + 'SID = ' + @SIDString + ';';
    End
    I've tried various things to get this to work as an expression, however I seem to continue to get the error:
    The expression might contain an invalid token, an incomplete token, or an invalid element. It might not be well-formed, or might be missing part of a required element such as a parenthesis.
    So the next thing I tried was just using the script as Direct input with Parameter Mapping on the tables but I've got the error:
    Must declare the table variable "@P1".
    All the way up to @P12. Since we're talking about 12 variables that are in the script in total. But they are table variables and apparently Parameter mapping is not possible on table variables or am I wrong here? Pieces of code for example are:
    Set @MaxID = (Select Max(LoginID) From ?)
    Set @CurrID = (Select Min(LoginID) From ?)
    I hope there's someone who could help me out or at least can give me a direction to look into.
    Yes we could use the script provided, but we don't want to work with LinkedServers, besides I'd have to make local jobs on the servers instead of controlling it all from 1 centralised server.
    Thank for looking at the topic and I hope you have a clue about what to do...
    Regards,
    Danny

    The code you posted is a t-sql code. If you want to store it inside ssis variable syntax is different. As per what you say what might be best would be to warp above code inside a procedure and then call it from SSIS execute sql task after passing values
    through SSIS variable
    also for 
    Set @MaxID = (Select Max(LoginID) From ?)
    etc
    create variable in SSIS, set EvaluateAsExpression true and set expression as
    "Select Max(LoginID) AS MaxID From " + @[User::TableName]
    Where TableName is SSIS variable through which you pass the table name. Then use above statement inside execute sql task and set resultset option as single row and map resultset to SSIS variable (say @[User::MaxID]) to get return value 
    similarly for other statements
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

Maybe you are looking for