从其他类访问“currentState”?

时间:2010-05-06 07:45:31

标签: flex actionscript-3

我在Actionscript 3中创建了一个小应用程序。在我的initApp.as中,我创建了另一个需要编辑currentState的类,该类只能从主.as(initApp.as)访问。我找到了一个解决方案,以便我可以从我的其他类到达currentState属性:Application.application.currentState。

然而,这不是一个很好的解决方案,因为它过多地结合了类。是否有更好的方法来编辑其他类的currentState?

1 个答案:

答案 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属性的自定义事件。祝你好运!