2

I have the following function, but I can't seem to get the myVar variable into the inline function. What am I doing wrong here? What I would like to have happen is when I click on myMc, it should print myVar to the console ("hello computer").

function doSomething():Void
{   
    myVar = "hello computer";

    myMc.onRelease = function(){
        trace(myVar); //prints as "undefined"
    }
}

ps. - I cannot declare myVar as a global or static variable because in the real code, I'm parsing XML and the myVar is constantly changing.

2 Answers 2

3

This is a scope issue - when you apply an onRelease function like this in as2, the scope of the function is the MovieClip you apply the function to, not the calling function.

Because you are using AS2 and MovieClip is dynamic, you can assign the variable to the MC directly:

function doSomething():Void
{   
    myMc.myVar = "hello computer";

    myMc.onRelease = function(){
        trace(this.myVar);
    }
}
Sign up to request clarification or add additional context in comments.

2 Comments

Thank you! That worked great. It's so straight forward, yet AS is very new to me to so these are great little lessons.
No problem. If AS is new to you maybe you should start with AS3 :)
0

Try declaring myVar with the var keyword:

var myVar = "hello computer";

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.