我有以下功能,但我似乎无法将myVar变量放入内联函数中。我在这做错了什么?我想要发生的是当我点击myMc时,它应该将myVar打印到控制台(“hello computer”)。
function doSomething():Void { myVar = "hello computer"; myMc.onRelease = function(){ trace(myVar); //prints as "undefined" } }
PS。 - 我不能将myVar声明为全局变量或静态变量,因为在实际代码中,我正在解析XML并且myVar会不断变化。
答案 0 :(得分:3)
这是一个范围问题 - 当你在as2中应用这样的onRelease函数时,函数的范围是你应用函数的MovieClip,而不是调用函数。
由于您使用的是AS2且MovieClip是动态的,您可以直接将变量分配给MC:
function doSomething():Void
{
myMc.myVar = "hello computer";
myMc.onRelease = function(){
trace(this.myVar);
}
}
答案 1 :(得分:0)
尝试使用myVar
关键字声明var
:
var myVar = "hello computer";