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);