如何在Action Script 2中将变量传递给内联函数

时间:2009-11-11 08:27:52

标签: actionscript-2 scope

我有以下功能,但我似乎无法将myVar变量放入内联函数中。我在这做错了什么?我想要发生的是当我点击myMc时,它应该将myVar打印到控制台(“hello computer”)。

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

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

PS。 - 我不能将myVar声明为全局变量或静态变量,因为在实际代码中,我正在解析XML并且myVar会不断变化。

2 个答案:

答案 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";