2016-09-15 35 views
-1

前言:我不是程序員,我是一名藝術家,我在AS3非常糟糕,並且使用非常基本的方法來實現我想要的東西,即使需要整整一個星期才能算出它出來並結束了1000多行冗餘代碼。在數組中切換項目

問題:我在舞臺上的數組中有10個按鈕。他們每個人都有一個「in」和「out」動畫。如何輕鬆點擊任何按鈕,並在播放之前點擊過的任何其他按鈕的「out」動畫時播放「in」動畫?什麼是最簡單的方法來完成這一點?

回答

1

無論你有你的代碼來處理按鈕按鈕,通過按鈕陣列循環,並檢查其狀態(或任何變量/屬性告訴你,如果按鈕是「in」或「out」)_state狀態。如果它找到一個「in」,則調用使其「熄滅」的函數。

一些僞代碼,你要考慮:

function buttonClicked(e:MouseEvent):void{ 
    for (var i:int = 0; i < buttonArray.length; i++){ 
     if (buttonArray[i]._state == "in"){ 
      buttonArray[i]._state = "out"; 
      // play button "out" animation 
     } 
    e.target._state = "in"; 
    // play e.target "in" animation 
} 
+0

我理解這個概念,但在實踐中我沒有。 ._state令我困惑。你如何將一個變量應用到按鈕實例? 我已經設置了2個不同的數組:1生成按鈕名稱,第二個用於保存用於跟蹤活動/非活動狀態的按鈕變量。 – Golgo13

+0

添加您在其中創建按鈕的代碼。 (或者它們是在IDE中製作的?) –

+0

如果它們是在IDE中製作的,我認爲您可以選擇按鈕並按F9打開操作面板,然後在每個按鈕實例中添加'var _state:String;'。如果您在運行時創建它們會更容易。你所要做的就是在類的.as文件的構造函數之上添加相同的代碼行。 –