2009-11-11 12 views
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不斷變化。

回答

3

這是一個範圍問題 - 當您在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

0

嘗試宣告myVarvar關鍵字:

var myVar = "hello computer"; 
相關問題