Flex-life-cycle-phases

提供:Dev Guides
移動先:案内検索

フレックス-ライフサイクルフェーズ

Flexアプリケーションのライフサイクル

アプリケーションのライフサイクルフェーズを理解しなくてもFlexアプリケーションを構築できますが、基本的なメカニズムを知っておくと便利です。物事が発生する順序。 実行時に他のFlexアプリケーションをロードするなどの機能を設定し、実行時にクラスライブラリとアセットをロードおよびアンロードするプロセスを管理するのに役立ちます。

Flexアプリケーションのライフサイクルを十分に理解すると、コードを最適に実行する場所がわかるため、より優れたアプリケーションを構築して最適化できます。 たとえば、プリローダー中にいくつかのコードを実行する必要がある場合、そのイベントのコードを配置する場所を知る必要があります。

ライフサイクルイベント

ブラウザにflexアプリケーションをロードすると、flexアプリケーションのライフサイクル中に次のイベントが発生します。

以下は、さまざまなFlexライフサイクルイベントに関する簡単な詳細です。

Sr.No Event & Description
1

preInitialize: mx.core.UIComponent.preinitialize

イベントタイプ:mx.events.FlexEvent.PREINITIALIZE

このイベントは、コンポーネントの初期化シーケンスの開始時に送出されます。 このイベントが送出されると、コンポーネントは非常に未加工の状態になります。 Buttonコントロールなどの多くのコンポーネントは、機能を実装するための内部子コンポーネントを作成します。 たとえば、Buttonコントロールは、ラベルテキストを表す内部UI TextFieldコンポーネントを作成します。

Flexが事前初期化イベントを送出するとき、コンポーネントのすべての内部子を含む子はまだ作成されていません。

2

initialize: mx.core.UIComponent.initialize

イベントタイプ:mx.events.FlexEvent.INITIALIZE

このイベントは、事前初期化フェーズの後に送出されます。 Flexフレームワークは、このフェーズでこのコンポーネントの内部構造を初期化します。 このイベントは、コンポーネントが親に追加されると自動的に発生します。

通常、initialize()を呼び出す必要はありません。

3

creationComplete: mx.core.UIComponent.creationComplete

イベントタイプ:mx.events.FlexEvent.CREATION_COMPLETE

このイベントは、コンポーネントの構築、プロパティ処理、測定、レイアウト、描画が完了すると送出されます。

この時点で、コンポーネントのvisibleプロパティに応じて、コンポーネントは描画されていても表示されません。

4

applicationComplete: spark.components.Application.applicationComplete

イベントタイプ:mx.events.FlexEvent.APPLICATION_COMPLETE

アプリケーションが初期化され、LayoutManagerによって処理され、表示リストに添付された後に送出されます。

これは、アプリケーション作成ライフサイクルの最後のイベントであり、アプリケーションが完全にロードされたことを示します。

フレックスライフサイクルの例

テストアプリケーションを作成することにより、Flexアプリケーションのテストライフサイクルを理解するための手順に従ってみましょう-

Step Description
1 Create a project with a name HelloWorld under a packagecom.finddevguides.client as explained in the Flex - Create Application chapter.
2 Modify HelloWorld.mxml as explained below. Keep rest of the files unchanged.
3 Compile and run the application to make sure business logic is working as per the requirements.

以下は、変更されたmxmlファイル src/com.finddevguides/HelloWorld.mxml の内容です。

<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
   xmlns:s = "library://ns.adobe.com/flex/spark"
   xmlns:mx = "library://ns.adobe.com/flex/mx"
   width = "100%" height = "100%" minWidth = "500" minHeight = "500"
   initialize = "reportEvent(event)"
   preinitialize = "reportEvent(event)"
   creationComplete = "reportEvent(event)"
   applicationComplete = "reportEvent(event)">

   <fx:Style source = "/com/finddevguides/client/Style.css"/>
   <fx:Script>
      <![CDATA[
         import mx.controls.Alert;
         import mx.events.FlexEvent;

         [Bindable]
         private var report:String = "";

         private function reportEvent(event:FlexEvent):void {
            report += "\n" + (event.type + " event occured at: "
            + getTimer() + " ms" + "\n");
         }
      ]]>
   </fx:Script>

   <s:BorderContainer width = "500" height = "500" id = "mainContainer"
      styleName = "container">
      <s:VGroup width = "100%" height = "100%" gap = "50"
         horizontalAlign = "center" verticalAlign = "middle">
         <s:Label textAlign = "center" width="100%" id = "lblHeader"
         fontSize = "40" color = "0x777777" styleName = "heading"
         text = "Life Cycle Events Demonstration"/>
         <s:TextArea id = "reportText" text = "{report}" editable = "false"
         width = "300" height = "200">
         </s:TextArea>
      </s:VGroup>
   </s:BorderContainer>
</s:Application>

すべての変更が完了したら、link:/flex/flex_create_application [Flex-アプリケーションの作成]の章で行ったように、アプリケーションを通常モードでコンパイルして実行します。 アプリケーションに問題がなければ、次の結果が得られます。[link:/flex/samples/CreateApplicationl [オンラインで試す]]

Flexアプリケーションライフサイクル