2

下面是 Flex 中预加载器的完整功能覆盖。

private function initComplete(e:Event):void
  {
   //dispatchEvent(new Event(Event.COMPLETE));
   cp.status.text="Configuring... Please Wait";
  }

我想要做的是当应用程序完成加载时,我想将预加载器文本更改为“配置”。然后我想在我的代码中做一些设置。

一旦我完成了我想要的所有设置,我怎样才能让预加载器从我的代码中的其他地方分派它的 Event.complete?

我尝试了 Application.application.preloader 但它为空。

所以我想我的问题真的是如何从我的应用程序的任何地方访问预加载器。更好的方法是将所有设置类作为我的预加载器类的成员吗?

4

2 回答 2

1

可能有帮助的一件事是模型-视图-控制器模式。您是否在为您的应用程序使用框架,例如 Mate、Swiz 或 Cairngorm?

例如,如果您使用的是Mate,您可以执行以下操作:

  • 创建具有属性的 AppStateManager 类(例如 applicationState)
  • 为 FlexEvent.INITIALIZE 事件创建一个带有 EventHandler 的 EventMap。在此处理程序中,将 AppStateManager.applicationState 设置为类似于“CONFIGURING”的内容
  • 您的 EventMap 有一个注入器,可将 applicationState 属性注入到视图中。注入器侦听此属性的更改并更新视图。在这种情况下,它可能只是被注入到您的主视图中。
  • 在主视图中,您有一个由 Mate 注入的公共可绑定属性,也称为 applicationState。
  • 在此属性的设置器中,您可以有一个 if/then 或一个根据状态执行不同任务的开关。例如,如果 applicationState == "COMPLETE",那么 this.preloader.dispatchEvent(Event.COMPLETE) 或类似的东西。

细节是拟定的,但其想法是使用 Flex 的绑定在进行更改时通知视图组件,并让共享对象保持状态。不知道这是否是你要找的...

于 2010-06-04T14:57:55.363 回答
0

组件 LifeCycle 以特定的顺序执行特定的操作,最后一个元素是使组件可见。

在我看来,您想将这种可见的设置推迟到 true 以执行其他操作。但是,我想如果您使用组件 LifeCycle,这将不是问题。

你需要做什么样的应用程序初始化?

于 2010-05-31T11:58:08.583 回答