How to pass variables into inline functions in Action Script 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 be开发者_如何学Gocause in the real code, I'm parsing XML and the myVar is constantly changing.
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);
}
}
Try declaring myVar
with the var
keyword:
var myVar = "hello computer";
精彩评论