as3表示リストのインデックスの操作

次の例では、表示オブジェクトコンテナ container を作成し、表示オブジェクト circle1 を表示リストに追加します。次に addChildAt() メソッドで、表示オブジェクト circle2 をインデックス位置 0 に追加しています。
結果的に表示オブジェクト circle1 はインデックス位置 1 に移動しています。

DisplayObjectContainer クラスの addChildAt() メソッドは、
第 1 引数には、追加する DisplayObject インスタンスを指定します。
第 2 引数に子を追加するインデックス位置(数値)を指定します。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが 1 つ上の位置に移動します(正の方向へオフセット)。

container.addChild (circle1); //こいつが元々は0だった
container.addChildAt (circle2, 0);  //後から来たこいつのおかげで、上のが1になる

var container:Sprite = new Sprite();
addChild (container);

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill (0xCCCCCC);
circle1.graphics.drawCircle (30,30,20);
circle1.graphics.endFill ();

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill (0x333333);
circle2.graphics.drawCircle (50,50,40);
circle2.graphics.endFill ();

container.addChild (circle1);
container.addChildAt (circle2, 0);

クリックされたら0にする

var container:Sprite = new Sprite();
addChild (container);

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill (0xCCCCCC);
circle1.graphics.drawCircle (30,30,20);
circle1.graphics.endFill ();

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill (0x333333);
circle2.graphics.drawCircle (50,50,40);
circle2.graphics.endFill ();

container.addChild (circle1);
container.addChild (circle2);

container.addEventListener (MouseEvent.CLICK, onClickHandler);

function onClickHandler (event:MouseEvent):void {
container.addChildAt (DisplayObject(event.target), 0);
}

関数をこれに変えると、クリックすると上になる

function onClickHandler (event:MouseEvent):void {
var lastIndex:int = container.numChildren -1;
container.setChildIndex (DisplayObject(event.target), lastIndex);
}

DisplayObjectContainer クラスの numChildren プロパティを利用して最後のインデックス位置の番号を取得
この例では2が入る、2から1ひいて、1を入れてクリックされたのが上に