2010-08-18 71 views
0

使用targetCurrent - 我能夠獲取用戶點擊的MovieClip的名稱。如何爲Flash(AS3)中的變量賦值?

在功能toggleClick 有一絲聲明說:

trace("movieClip Instance Name = " + e.currentTarget); 

輸出窗口:

movieClip Instance Name = [object Comp] 

基於什麼用戶點擊 - 會有一個與MovieClip關聯的值。

在閃光燈舞臺上有多個切換按鈕:用戶可以切換開啓或關閉動畫片段。 在舞臺上有以下的動畫片段:電腦,燈泡和電視。用戶可以打開或關閉對象。

如果用戶點擊「計算機」的MovieClip ...

我希望能夠遍歷houseArray - 當循環的變量,名爲變種發現在array-- 補償powerData - 它將存儲comp的功率值。 (我不確定如何編寫過程中AS3)。在houseArray補償= 「2」 - 再見...

var powerData:int = 2;

    var houseArray:Object = {lightA:"1", 
              lightB:"1", 
              lightC: "1" 
              lightD: "1" 
              lightE: "1" 
              comp: "2" 
              tv: "3" 
              stove: "4" 
              laundry: "5"}; 

回答

1

由於houseArray是一個對象,而不是一個數組,你不不需要循環來獲得價值。你需要做的是當你點擊「Comp」MovieClip時獲得「comp」。有很多方法可以做到這一點。如果你的影片剪輯的實例名稱爲 「比較」,那麼你可以這樣做:

var powerData:int = houseArray[e.currentTarget.name.toLowerCase()]; 
+0

我把: VAR powerData:INT = houseArray [e.currentTarget.name.toLowerCase()];在函數toggleClick中使用 。 同樣在toggleClick函數中,我跟蹤了powerData: trace(powerData); 當我點擊「比較」的MovieClip ... 在輸出窗口: VAR powerData應該有2 – jc70 2010-08-18 05:31:32

+0

值謝謝,我能解決我遇到的問題。我的代碼中的某些內容導致它無法正常工作。感謝您向我展示如何編寫代碼以使MovieClip符合我需要的正確值。 – jc70 2010-08-21 22:49:15