我在Actionscript 3中创建了一个小应用程序。在我的initApp.as中,我创建了另一个需要编辑currentState的类,该类只能从主.as(initApp.as)访问。我找到了一个解决方案,以便我可以从我的其他类到达currentState属性:Application.application.currentState。
然而,这不是一个很好的解决方案,因为它过多地结合了类。是否有更好的方法来编辑其他类的currentState?
答案 0 :(得分: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);
其中Dispatcher是单例,StateChangeEvent是具有newState属性的自定义事件。祝你好运!