addChild と getChildAt と getChildIndex

単純だけと迷ったので覚書。

FLASHで多数のインスタンスをaddChild するときはループを良く使う。

2重ループを使って発生させることも良くあるが、addChild 後の個別の制御は、思ったほどシンプルには出来ない。。。

4つのインスタンスをライブラリィでリンケージ設定しているシンボルからaddChild し、その後、動かすサンプル。

 

//////////////////////基本描画
function drawObj(){

    for (var n=1; n <= 2; n++) {
       
        for (var i=0; i <= 1; i++) {

 
            ClassReference = getDefinitionByName(“Obj” + i) as Class;
            var Obj:Object = new ClassReference();

            ObjScreen.addChild (Sprite(Obj));
           
            //適当に座標設定 
            Obj.x = i*100+(n*300) ;
            Obj.y = i*100;

        }
       

    }

}

//////////////////////アニメーション
function moveObj(){

    addEventListener(Event.ENTER_FRAME, myEnterFrame);
    var countUp:int = 1;
    var i;
    var Obj;

    function myEnterFrame(event:Event) {

           
            for (i=0; i <= 1; i++) {
               
                        Obj = ObjScreen.getChildAt(i);

                        Obj.y += countUp; //適当に動かす
    
    
            }
           
           
            for (i=2; i <= 3; i++) {
               
                        Obj = ObjScreen.getChildAt(i);

                        Obj.y += countUp*5; //適当に動かす
                        
            }

     }
}

PS.ちなみに確認は、

trace(ObjScreen.getChildIndex(Obj),Obj.x,Obj.y);

おすすめ