Summary (概要)

Adobe Flex で表示オブジェクトコンテナに複数の子オブジェクトを追加したとき、その重なり順(Zオーダー)は、子オブジェクトの追加順がそのまま適用されます。

すなわち、一番最初に追加された子オブジェクトが最背面に表示され、一番最後に追加された子オブジェクトが最前面に表示されます。

この資料では、子オブジェクトのZオーダーをプログラム中から変更する方法について説明します。



Solutions (解決方法)



Zオーダーを変更するには、setChildIndex() メソッドや swapChildren() メソッドなど、各オブジェクトの追加順序を変更するメソッドを使用します。

例えば、ある Canvas オブジェクト "parent" の中に、複数の子オブジェクト "child1", "child2", "child3" が追加されているとします。

ここで、"child2" を最背面に移動させるには、次のようなコードを記述します。

// child2 の追加順を先頭(0) にすると、Zオーダーは最背面に移動します。

parent.setChildIndex(child2, 0);

逆に、child2 を最前面に移動するには、次のコードを記述します。

// child2 の追加順を末尾(parent.getChildren().length -1) にすると、Zオーダーは最前面に移動します。

parent.setChildIndex(child2, parent.getChildren().length -1);



Additional Information (追加情報)

次の添付ファイルは、setChildIndex() メソッドや swapChildren() メソッドを使い、3つの子オブジェクトのZオーダーを変更する様子を示したサンプル プログラムです。

このサンプル プログラムを実行するには、次の手順を実行してください。

1.添付ファイル "ControlZOrder.mxml" をダウンロードし、ローカルドライブに保存します。

2. Flex Builder 3 を起動し、新規 Flex プロジェクトを作成します。

3. 手順 1 で入手した "ControlZOrder.mxml" を、プロジェクトに追加します。

4. Flex Builder 3 の [実行] > [ControlZOrder を実行] メニューをクリックし、サンプル プログラムを実行します。

(免責事項)

このサンプル プログラム "ControlZOrder.mxml" は、要点を明確にするために、必要最小限のコードを記述しております。

そのため、引数チェックや例外処理など、商用プログラム等で通常必要とされるコードまでは記述しておりません。

なお、弊社では、このサンプルプログラムの実行結果についてのご質問や、機能拡張方法についてのご相談などをお受けすることはできませんので、あらかじめご了承ください。

FURTHER READING

各メソッドの詳細については、次のリファレンスマニュアルを御覧ください、

setChildIndex() メソッド

・swapChildren() メソッド

コンポーネントインスタンスの実行時の作成と管理

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー