devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

表示オブジェクトコンテナに追加した後からオブジェクトの重なり順を変更する方法。
DisplayObjectContainerクラスのメソッドを使用して実現します。

インデックスを指定する

setChildIndex()メソッド

重なり順を変更したい子オブジェクトのインデックスを指定します。インデックスが適切な範囲内にないとエラーが発生するので、numChildrenプロパティ(コンテナの子の数)などを参照して適切なインデックスを指定する必要があります。コンテナに含まれる他の子オブジェクトのインデックスは、自動的に前後の値に調整されます。

ちなみに、子オブジェクトのインデックスを取得するにはgetChildIndex()メソッドを使用します。

this.setChildIndex(mc, 2);

コンテナ(this)に含まれる子オブジェクト(mc)のインデックスを2に設定する。

サンプル

クリックされたオブジェクトのインデックスを0に指定しています。その他のオブジェクトのインデックスが自動的に調整されている様子が分かります。

This movie requires Flash Player 11

2つを入れ替える

swapChildren()メソッド

入れ替えたい2つの子オブジェクトを指定して、重なり順を変更します。コンテナに含まれている、他の子オブジェクトのインデックスには影響はありません。

this.swapChildren(mc1, mc2);

コンテナ(this)に含まれる子オブジェクト(mc1)と子オブジェクト(mc2)を入れ替える。

サンプル

最初にクリックされたオブジェクトと次にクリックされたオブジェクトを入れ替えています。

This movie requires Flash Player 11

Pocket
[`evernote` not found]

コメントを残す

Trackback URL: