| パッケージ | mx.managers |
| public class LayoutManager | |
| 継承 | LayoutManager EventDispatcher Object |
| Implements | ILayoutManager |
各段階はそれぞれ独立しており、1 つの段階の UIComponent がすべて処理されてから、次の段階に進みます。ある段階の UIComponent を処理しているときに、UIComponent を他の段階で再処理する要求が発生することがあります。このような要求はキューに格納され、再処理が必要な段階が次回実行されるときに処理されます。
処理段階は validateProperties() の呼び出しで始まります。このメソッドは、オブジェクトのリスト (ネストレベルで並べ替え) の順に各オブジェクトの validateProperties() メソッドを呼び出します。
リスト内のオブジェクトは、ネストレベルが最も深いオブジェクトからネストの順番に処理されます。これは、ボトムアップ順、または逆順とも呼ばれます。
この段階では、測定段階およびレイアウト段階に入る前に、プロパティの設定に依存するコンテンツを持つコンポーネントを構成できます。コンポーネントのプロパティ設定メソッドでは、パフォーマンスの観点から、新しいプロパティ値に更新する処理の一部を実行しないことがあります。代わりに、invalidateProperties() メソッドを呼び出して、この段階が実行されるまで処理を延期します。これにより、プロパティが何回も設定される場合に、不要な作業の発生を防止します。
測定段階は validateSize() メソッドの呼び出しで始まります。このメソッドは、オブジェクトのリスト (ネストレベルで並べ替え) の順で各オブジェクトの validateSize() メソッドを呼び出し、オブジェクトのサイズが変更されていないかを判断します。
オブジェクトの invalidateSize() メソッドが以前に呼び出されている場合は、validateSize() メソッドが呼び出されます。validateSize() が呼び出された結果、オブジェクトのサイズまたは位置が変更された場合は、オブジェクトの invalidateDisplayList() メソッドが呼び出されます。このオブジェクトは処理待ちのキューに追加され、次回レイアウト段階が実行されるときに処理されます。さらに、このオブジェクトの親は、 invalidateSize() によって測定段階に、 invalidateDisplayList() の呼び出しによってレイアウト段階の両方にマークされます。
リスト内のオブジェクトは、ネストレベルが最も深いオブジェクトからネストの順番に処理されます。これは、ボトムアップ順、または逆順とも呼ばれます。
レイアウト段階は validateDisplayList() の呼び出しで始まります。このメソッドは、オブジェクトのリスト (ネストレベルの逆順で並べ替え) の順で各オブジェクトの validateDisplayList() メソッドを呼び出し、オブジェクトに対して、そこに含まれているすべてのコンポーネント (子など) のサイズと位置を設定することを要求します。
オブジェクトの invalidateDisplayList() メソッドが以前に呼び出されている場合は、オブジェクトに対して validateDisplayList() メソッドが呼び出されます。
リストにあるオブジェクトは、ネストレベルが最も浅いオブジェクトからネストの順番とは逆の順番で処理されます。これは、トップダウン順、または正順とも呼ばれます。
通常、コンポーネントは validateProperties() メソッド、validateSize() メソッド、または validateDisplayList() メソッドをオーバーライドしません。UIComponent の場合、ほとんどのコンポーネントが commitProperties() メソッド、measure() メソッド、または updateDisplayList() メソッドをオーバーライドします。これらのメソッドはそれぞれ、validateProperties() メソッド、validateSize() メソッド、validateDisplayList() メソッドによって呼び出されます。
アプリケーションの起動時に、LayoutManager の単一のインスタンスが作成され、UIComponent.layoutManager プロパティに格納されます。すべてのコンポーネントは、このインスタンスを使用する必要があります。UIComponent オブジェクトにアクセスできない場合は、静的 LayoutManager.getInstance() メソッドを使用して LayoutManager にアクセスすることもできます。
| プロパティ | 定義 | ||
|---|---|---|---|
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| usePhasedInstantiation : Boolean
LayoutManager で段階と段階の間での画面更新が許可されているかどうかを示すフラグです。
| LayoutManager | ||
| メソッド | 定義 | ||
|---|---|---|---|
|
コンストラクタです。
| LayoutManager | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
リスナーがイベントの通知を受け取るように、イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録します。
| EventDispatcher | |
![]() |
イベントをイベントフローに送出します。
| EventDispatcher | |
|
[static]
このシングルトンクラスの唯一のインスタンスを返します。インスタンスが存在しない場合は、作成します。
| LayoutManager | ||
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() |
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
| Object | |
|
コンポーネントが変更され、コンポーネントのレイアウトやビジュアルの変更が必要な場合に呼び出されます。
| LayoutManager | ||
validateProperties() メソッドが呼び出されるのを待機しているコンポーネントのリストにオブジェクトを追加します。 | LayoutManager | ||
validateSize() メソッドが呼び出されるのを待機しているコンポーネントのリストにオブジェクトを追加します。 | LayoutManager | ||
|
検証が必要なコンポーネントがある場合は
true を返します。すべてのコンポーネントの検証が完了している場合は false を返します。 | LayoutManager | ||
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。
| Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
|
プロパティが変更されても、一般的にはコンポーネントはその変更をすぐに適用しません。
| LayoutManager | ||
|
プロパティが変更されても、一般的にはコンポーネントはその変更をすぐに適用しません。
| LayoutManager | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| usePhasedInstantiation | プロパティ |
usePhasedInstantiation:Boolean [read-write]
LayoutManager で段階と段階の間での画面更新が許可されているかどうかを示すフラグです。true の場合、画面ごとに測定およびレイアウトそれぞれの段階が行われます。コンポーネントのすべてのプロパティが検証されるまで、すべてのコンポーネントの validateProperties() メソッドおよび commitProperties() メソッドが呼び出されます。検証が完了すると、画面が更新されます。
次に、すべてのコンポーネントの測定が完了するまで、すべてのコンポーネントの validateSize() メソッドおよび measure() メソッドが呼び出されます。測定が完了すると、画面が再び更新されます。
最後に、すべてのコンポーネントの検証が完了するまで、すべてのコンポーネントの validateDisplayList() メソッドおよび updateDisplayList() メソッドが呼び出されます。検証が完了すると、画面が再び更新されます。1 つの段階の検証で、前の段階が無効化されると、LayoutManager が始めからやり直します。多数のコンポーネントを作成して初期化する場合には、より効率的です。フレームワークが、このプロパティを設定します。
false の場合、画面が更新される前に 3 つすべての段階が完了しました。
public function get usePhasedInstantiation():Boolean
public function set usePhasedInstantiation(value:Boolean):void
| LayoutManager | () | コンストラクタ |
public 関数 LayoutManager()コンストラクタです。
| getInstance | () | メソッド |
public static function getInstance():LayoutManagerこのシングルトンクラスの唯一のインスタンスを返します。インスタンスが存在しない場合は、作成します。
戻り値LayoutManager |
| invalidateDisplayList | () | メソッド |
public function invalidateDisplayList(obj:ILayoutManagerClient):voidコンポーネントが変更され、コンポーネントのレイアウトやビジュアルの変更が必要な場合に呼び出されます。この場合、コンポーネントのサイズが変更されていなくても、コンポーネントのレイアウトアルゴリズムを実行する必要があります。たとえば、新しい子コンポーネントが追加された場合、スタイルプロパティが変更された場合、コンポーネントの親によってコンポーネントに新しいサイズが指定された場合などがあります。
パラメータobj:ILayoutManagerClient — 変更されたオブジェクトです。
|
| invalidateProperties | () | メソッド |
public function invalidateProperties(obj:ILayoutManagerClient):void
validateProperties() メソッドが呼び出されるのを待機しているコンポーネントのリストにオブジェクトを追加します。コンポーネントは、プロパティが変更されたときにこのメソッドを呼び出す必要があります。通常、プロパティ設定メソッドでは、新規の値を一時変数に格納し、invalidateProperties() メソッドを呼び出して、後でこの新規の値が実際にコンポーネントやコンポーネントの子に適用されるときに validateProperties() メソッドおよび commitProperties() メソッドが呼び出されるようにします。この手順の利点は、複数のプロパティを一度に変更して、これらのプロパティが相互に操作できるようにしたり、プロパティが適用されたり、または特定の順番で適用されるときにコードが繰り返されるようにできることです。この手順を使用すると、最も効率的に新規のプロパティ値を適用できます。
obj:ILayoutManagerClient — プロパティが変更されたオブジェクト。
|
| invalidateSize | () | メソッド |
public function invalidateSize(obj:ILayoutManagerClient):void
validateSize() メソッドが呼び出されるのを待機しているコンポーネントのリストにオブジェクトを追加します。オブジェクトのサイズが変化したときに呼び出されます。
オブジェクトのサイズは、次の 2 つの理由により変化する場合があります。
label が変更されます。minWidth、minHeight、explicitWidth、explicitHeight、maxWidth、または maxHeight。前者の場合は、オブジェクトの寸法を再計算する必要があります。後者の場合は、新しいオブジェクトのサイズがわかっているので、寸法を再計算する必要はありません。ただし、オブジェクトの親を再測定して再レイアウトする必要があります。
パラメータobj:ILayoutManagerClient — サイズが変更されたオブジェクト。
|
| isInvalid | () | メソッド |
public function isInvalid():Boolean
検証が必要なコンポーネントがある場合は true を返します。すべてのコンポーネントの検証が完了している場合は false を返します。
Boolean |
| validateClient | () | メソッド |
public function validateClient(target:ILayoutManagerClient, skipDisplayList:Boolean = false):voidプロパティが変更されても、一般的にはコンポーネントはその変更をすぐに適用しません。通常、コンポーネントは LayoutManager の無効化メソッドを呼び出して、プロパティを後で適用します。設定した実際のプロパティはすぐに読み出すことができますが、プロパティがコンポーネント内の他のプロパティ、あるいはコンポーネントの子や親に影響を与えるものである場合、これらの他のプロパティはすぐには更新されません。
値が更新されることを保証するには、validateClient() メソッドを呼び出します。このメソッドは、ネストレベルがターゲットコンポーネント以上であるすべてのコンポーネントのすべてのプロパティを更新してから終了します。このメソッドを呼び出すと計算の負荷が大きいため、このメソッドは必要な場合にのみ使用してください。
target:ILayoutManagerClient — ここに渡されるコンポーネントは、どのコンポーネントを検証する必要があるかをテストするために使用されます。このコンポーネントによって含められたすべてのコンポーネントの validateProperties()、commitProperties()、validateSize()、measure()、validateDisplayList()、および updateDisplayList() メソッドが呼び出されます。
|
|
skipDisplayList:Boolean (default = false) — true の場合、validateDisplayList() メソッドおよび updateDisplayList() メソッドを呼び出しません。
|
| validateNow | () | メソッド |
public function validateNow():void
プロパティが変更されても、一般的にはコンポーネントはその変更をすぐに適用しません。通常、コンポーネントは LayoutManager の無効化メソッドを呼び出して、プロパティを後で適用します。設定した実際のプロパティはすぐに読み出すことができますが、プロパティがコンポーネント内の他のプロパティ、あるいはコンポーネントの子や親に影響を与えるものである場合、これらの他のプロパティはすぐには更新されません。値が更新されることを保証するには、validateNow() メソッドを呼び出します。このメソッドは、コンポーネントのすべてのプロパティを更新してから終了します。このメソッドを呼び出すと計算の負荷が大きいため、このメソッドは必要な場合にのみ使用してください。