おそらくv
、ではなく、ディスプレイリストに追加できるようですcontainer[i]
。あなたはそれを試しましたか?
更新:実際、問題はループ定義の2番目の項目に起因すると思います。i < allElements.length
ではなく、である必要がありallElements.length
ます。設定方法では、必要以上に1回実行されています。
以下は、上記の投稿内容に基づいた、いくつかの実用的なコードです。明確にする必要がある場合は、コメントで私を殴ってください(誰でも-これまでのところ、荒れた朝でした...)。
var el1_spr:Sprite = new Sprite;
var el2_spr:Sprite = new Sprite;
var el3_spr:Sprite = new Sprite;
el1_spr.graphics.beginFill(0x0000FF);
el1_spr.graphics.moveTo(0,0);
el1_spr.graphics.lineTo(100,0);
el1_spr.graphics.lineTo(100,100);
el1_spr.graphics.lineTo(0,100);
el1_spr.graphics.lineTo(0,0);
el1_spr.graphics.endFill();
el2_spr.graphics.beginFill(0x00FF00);
el2_spr.graphics.moveTo(0,0);
el2_spr.graphics.lineTo(100,0);
el2_spr.graphics.lineTo(100,100);
el2_spr.graphics.lineTo(0,100);
el2_spr.graphics.lineTo(0,0);
el2_spr.graphics.endFill();
el3_spr.graphics.beginFill(0xFF0000);
el3_spr.graphics.moveTo(0,0);
el3_spr.graphics.lineTo(100,0);
el3_spr.graphics.lineTo(100,100);
el3_spr.graphics.lineTo(0,100);
el3_spr.graphics.lineTo(0,0);
el3_spr.graphics.endFill();
var elements:Array = new Array (el1_spr, el2_spr, el3_spr);
var container:Array = new Array();
for (var i:uint; i < elements.length; i++)
{
container.push(elements[i]);
var v:Sprite = (elements[i] as Sprite);
addChild(v);
//addChild(elements[i]); // this also works
//addChild(container[i]); // this also works
v.x += (100 * i);
//elements[i].x += (100 * i); // this also works
//container[i].x += (100 * i); // this also works
}
あなたのコードのコンテキストが何であるかはわかりませんが、それが価値があるかもしれないので、あなたが必ずしもcontainer
配列を必要としないことを示すために、またはを作成するために、私はいくつかの余分な行を含めましたv
。
お役に立てば幸いです。