我知道這是不是你想要聽到的,但在這裏它去反正:你想這樣做,爲什麼呢?這些州的全部目的是,你不必編寫大量的ActionScript來做同樣的事情。 「啓用」給我叫Boolean實例名爲「狀態1」的屬性:
爲什麼你不能那樣做
通過寫在ActionScript Btn.enabled.State1
你基本上說。很明顯,這是行不通的,因爲布爾沒有這樣的屬性。您將MXML點(。)表示法(用於將值分配給基於狀態的屬性)與ActionScript點符號混淆 - 用於讀取/寫入屬性。
溶液或接近它得到
由於它的這個特點,你會用它MXML,你不能做你問什麼在ActionScript的本質。接下來最好的事情是聽取StateChangeEvent en根據新的狀態名稱設置Button的'enabled'屬性。
addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onStateChange);
private function onStateChange(event:StateChangeEvent):void {
switch (event.newState) {
case "wrong": Btn.enabled = false; break;
case "correct": Btn.enabled = true; break;
}
}
(我使用的是相同的狀態在詹姆斯的回答)
是的,我知道使用MXML是更好,但能夠使用它在AS將使編碼更靈活一點。由於MXML最終會轉化爲AS代碼,因此我認爲有一種簡單的方法可以在AS中使用它。使用事件來改變狀態可能有點沉重。我可能是錯的,但無論如何感謝。 – jameslcs 2012-02-16 16:53:47
@jameslcs我必須承認,我還沒有看過這個功能生成的AS代碼,但我認爲它幾乎完成了我所寫的內容(即跟蹤狀態改變事件並相應地設置屬性),但是更通用辦法。 – RIAstar 2012-02-16 17:20:15