Progressionが使えるようになりたいメモ8_AddChildAtコマンドでハマっています。


題名の通り、Progression3のAddChildAtコマンドでハマっています。


var container:Sprite=new Sprite();
for(var i:uint=0 ; i<5 ; i++)
{
	var sp:Sprite=new Sprite();
	sp.name="sprite"+i;
	container.addChild(sp);
}
for (i=0 ; i<container.numChildren ; i++)
{
	trace(container.getChildAt(i).name);
}

とすると、

sprite0
sprite1
sprite2
sprite3
sprite4

と出力されます。

var sp2:Sprite=new Sprite();
sp2.name="後から追加したsprite";
container.addChildAt(sp2,2);
for (i=0 ; i<container.numChildren ; i++)

{ trace(container.getChildAt(i).name); }

とすると、

sprite0
sprite1
後から追加したsprite
sprite2
sprite3
sprite4

となります。



で、これをProgressionのAddChildAtコマンドで試してみてハマっています。

protected override function _onInit():void 
{
	for (var i:uint = 0; i < 10; i++)
	{
		var sp:Sprite = new Sprite();
		sp.name = "sprite" + i;
		progression.container.addChild(sp);	
	}

	var sp2:Sprite = new Sprite();
	sp2 = new Sprite();
	sp2.name = "後から追加したsprite";
	addCommand(
		new AddChildAt(progression.container,sp2,2),
		function ():void
		{
			for (var i:uint = 0; i < progression.container.numChildren; i++)
			{
				trace("index=",i,progression.container.getChildAt(i).name);
			}
		}
	);
}

とすると、

sprite0
sprite1
後から追加したsprite

なぜか、追加したsprite以降がnullになってしまい、エラーを返してきます。

??????

よくわかりません。

progression.container上はあまり操作をしてはいけないのか・・・・。


メインの作業用コンテナmainContainerというSpriteクラスのインスタンスをprogression.containerに入れて、その中で操作をすると、全くエラーを返してはきませんでした。


もう少し、がんばって原因を探っていこうと思います。

もしくは、ヘルプと叫ぶかもしれませんが。