如何将变量传递到动作脚本2中的内联函数

如何将变量传递到动作脚本2中的内联函数

问题描述:

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

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

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

ps。 - 我无法将myVar声明为全局变量或静态变量,因为在真实代码中,我解析XML并且myVar不断变化。

这是一个范围问题 - 当您在as2中应用像这样的onRelease函数时,函数的作用域是应用该函数的MovieClip,而不是调用函数。

由于您使用的AS2和影片剪辑是动态的,您可以将变量分配给直接MC:

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

    myMc.onRelease = function(){ 
     trace(this.myVar); 
    } 
} 
+0

谢谢!这很好。它非常直截了当,但AS对我来说非常新颖,所以这些都是很棒的小课程。 – justinl 2009-11-12 02:18:22

+0

没问题。如果AS对你来说是新的,也许你应该从AS3开始:) – Reuben 2009-11-12 02:25:45

尝试宣告myVarvar关键字:

var myVar = "hello computer";