2

以下は、Flex のプリローダーの完全な関数でオーバーライドされます。

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

私がやりたいのは、アプリの読み込みが完了したときに、プリローダーのテキストを「構成中」に変更したいということです。次に、コードで一連のセットアップを行いたいと思います。

必要なセットアップをすべて完了したら、コードの他の場所から Preloader に Event.complete をディスパッチさせるにはどうすればよいですか?

Application.application.preloader を試しましたが、null になります。

したがって、私の質問は、アプリケーションのどこからでもプリローダーにアクセスする方法だと思います。より良いアプローチは、すべてのセットアップ クラスをプリローダー クラスのメンバーとして持つことでしょうか?

4

2 に答える 2

1

役立つかもしれない1つのことは、Model-View-Controllerパターンです。Mate、Swiz、Cairngormなどのアプリケーションにフレームワークを使用していますか?

たとえば、 Mateを使用している場合は、次のようにすることができます。

  • プロパティ(例:applicationState)を使用してAppStateManagerクラスを作成します
  • 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 は、特定の処理を特定の順序で実行します。最後の要素に近いのは、コンポーネントを可視化することです。

他のことをするために、このvisibleの設定をtrueに延期したいように思えます。しかし、コンポーネント LifeCycle を使用している場合、これは問題ではないと思います。

どのような種類のアプリの初期化を行う必要がありますか?

于 2010-05-31T11:58:08.583 に答える