| メソッド | フレームあり | フレームなし |
LayoutManager は、測定やレイアウトの処理のエンジンとなる静的クラスです。
レイアウトは、処理、測定、レイアウト、および描画の 4 段階で実行されます。
各段階はそれぞれ独立しており、1 つの段階の UIObject がすべて処理されてから、次の段階に進みます。ある段階の UIObject を処理しているときに、UIObject を他の段階で再処理する要求が発生することがあります。このような要求はキューに格納され、再処理が必要な段階が次回実行されるときに処理されます。
処理段階は commitProperties() の呼び出しで始まります。このメソッドは、オブジェクトのリスト (FIFO 順) の順に各オブジェクトの commitProperties() メソッドを呼び出します。
この段階では、測定段階およびレイアウト段階に入る前に、プロパティの設定に依存するコンテンツを持つコンポーネントを構成できます。コンポーネントのプロパティ設定メソッドでは、パフォーマンスの観点から、新しいプロパティ値に更新する処理の一部を実行しないことがあります。代わりに、invalidateProperties() を呼び出して、この段階が実行されるまで処理を延期します。これにより、プロパティが何回も設定される場合に、不要な作業の発生を防止します。
測定段階は measureSizes() の呼び出しで始まります。このメソッドは、オブジェクトのリスト (ネストレベルで並べ替え) の順で各オブジェクトの measure() メソッドを呼び出し、オブジェクトのサイズが変更されていないかを判断します。
オブジェクトの invalidateSize() メソッドが以前に呼び出されている場合は、measure() メソッドが呼び出されます。
measure() が呼び出された結果、オブジェクトのサイズまたは位置が変更された場合は、オブジェクトの invalidateLayout() メソッドが呼び出されます。このオブジェクトは処理待ちのキューに追加され、次回レイアウト段階が実行されるときに処理されます。さらに、このオブジェクトの親は、invalidateSize() の呼び出しによって測定段階に、invalidateLayout() の呼び出しによってレイアウト段階の両方にマークされます。リスト内のオブジェクトは、ネストレベルが最も深いオブジェクトからネストの順番に処理されます。これは、ボトムアップ順、または逆順とも呼ばれます。
レイアウト段階は layoutChildren() への呼び出しで開始します。このメソッドは、オブジェクトのリスト (ネストレベルの逆順で並べ替え) の順で各オブジェクトの layoutChildren() メソッドを呼び出し、オブジェクトに対して、そこに含まれているすべてのコンポーネント (子など) のサイズと位置を設定することを要求します。
オブジェクトの invalidateLayout() メソッドが以前に呼び出されている場合は、layoutChildren() メソッドが呼び出されます。
リストにあるオブジェクトは、ネストレベルが最も浅いオブジェクトからネストの順番とは逆の順番で処理されます。これは、トップダウン順、または正順とも呼ばれます。
描画段階は drawChildren() への呼び出しで開始します。このメソッドは、オブジェクトのリスト (FIFO 順で並べ替え) の順で各オブジェクトの draw() メソッドを呼び出し、オブジェクトに対して、オブジェクトおよびそこに含まれているコンポーネント (子など) を描画することを要求します。オブジェクトをキューに配置するには、そのオブジェクトに対して invalidate() を呼び出している必要があります。
| メソッド | |
static | invalidateDraw( obj:mx.core.UIObject)
: Voidビューに子が追加されたとき、またはビューから子が削除されたときに呼び出されます。 |
static | invalidateLayout( obj:mx.core.UIObject)
: Voidビューに子が追加されたとき、またはビューから子が削除されたときに呼び出されます。 |
static | invalidateSize( obj:mx.core.UIObject)
: Voidオブジェクトのサイズが変化したときに呼び出されます。 |
| メソッドの詳細 |
static invalidateDraw( obj:mx.core.UIObject)
: Void
パラメータ
obj:mx.core.UIObject - オブジェクトを表します。
static invalidateLayout( obj:mx.core.UIObject)
: Void
パラメータ
obj:mx.core.UIObject - オブジェクトを表します。
static invalidateSize( obj:mx.core.UIObject)
: Void
パラメータ
obj:mx.core.UIObject - オブジェクトを表します。