2010-05-06 187 views
1

我在Actionscript 3中做了一個小應用程序。在我的initApp.as中,我創建了另一個需要編輯currentState的類,它只能從主.as(initApp.as)訪問。我找到了一個解決方案,以便可以從我的其他類中訪問currentState屬性:Application.application.currentState。從其他類訪問「currentState」?

然而,這不是一個好的解決方案,因爲它太多了耦合類..有沒有更好的方式來編輯其他類的currentState?

回答

2

我建議你使用事件和中央調度程序。例如:

在InitApp.as

Dispatcher.instance.addEventListener(StateChangeEvent.STATE_CHANGE, onStateChange); 

protected function onStateChange(e:StateChangeEvent):void 
{ 
    this.currentState = e.newState; 
    // perhaps dispatch another state change event that all views can listen for? 
} 

在你其他類

Dispatcher.instance.dispatchEvent(new StateChangeEvent(StateChangeEvent.STATE_CHANGE, newState); 

,其中調度是獨立的,並StateChangeEvent是一個newState屬性自定義事件。祝你好運!