0

タイムラインに約 60 個のボタンを手動で追加しました。それぞれのインデックスを指定する必要がありますが、ライブラリからオブジェクトをステージにドロップする順序に応じてインデックスが与えられます。従う簡単なパターンがないため、プログラムで各ボタンのインデックスを名前で指定する必要はありません。

private function buttonHandler(event:MouseEvent):void
        {
            event.target.parent.getChildIndex(event.target));
}

このようにすべてのインデックスを取得できますが、必要な順序ではありません。ありがとうございました

4

1 に答える 1

1

インデックスの順序を手動で変更するには、addChildAt (DisplayObject, index) 2つのdisplayobjectインデックススイッチが必要な場合に使用します。以下をご利用ください。swapChildren(DisplayObject1,DisplayObject2) swapChildrenAt(index1,index2)

下の画像を見ると、ステージにあるインスタンスMovieClip6があります。ただし、インデックスは任意です。実際に注文を作成するか、ライブラリから注文をドラッグアンドドロップするかによって異なります。だから私は順序に従って名前でインデックスを並べ替えています。

ここに画像の説明を入力してください

import flash.display.MovieClip;

var mc:MovieClip;
for(var i:int = 0; i<this.numChildren; i++)
{
    mc = this.getChildAt(i) as MovieClip;
    trace("before clipName: " + mc.name);
}

//re-ordering
for(i = 0; i<this.numChildren; i++)
{
    mc = this.getChildByName("mc"+i) as MovieClip;
    addChildAt(mc,i);
}

for(i = 0; i<this.numChildren; i++)
{
    mc = this.getChildAt(i) as MovieClip;
    trace("after clipName: " + mc.name);
}

console:

before clipName: mc1
before clipName: mc4
before clipName: mc3
before clipName: mc5
before clipName: mc2
before clipName: mc0

after clipName: mc0
after clipName: mc1
after clipName: mc2
after clipName: mc3
after clipName: mc4
after clipName: mc5
于 2012-08-21T02:10:42.697 に答える