addChildで配置したキャラの削除:FlashCCでiPhoneゲームアプリ制作

FlashCCでiPhoneのゲームアプリを制作している件です。
addChildで配置したキャラを、ゲームオーバーなどで削除しようとして少しハマったのでメモします。

Flashでは、何かASのゲーム用フレームワークでも使わなければ、SpriteやMovieClipをaddChildすると思います。

	for (var i:uint=0; i< maxSAM; i++) {
		var m:sam = new sam();
		m.name ="sam_"+i;
		m.x =-100;
		m.y =1136;
		aSAM.push(m);
		gameLayer.addChild(m);
	}

で、ゲームオーバーした後に配置したキャラクターを消去したかったのですが、この方法が分からなくて躓きました。
自分なりにやってみたのが、rootからだと配列を使って以下のような感じ。

	for (var i:uint=0; i< maxSAM; i++) {
		aSAM[i].removeChild();
	}

上記でダメだったので、MovieClip自身に削除用のfunctionを設けてみたりもしました。

function deleteSelf():void{
	this.removeChild();
}

こんなことしてみたり、

function deleteSelf():void{
	parent.removeChild(this);
}

でも、全然消えてくれませんでした。

そこで「自分自身 removeChild」でググったところ、こちらのページ(「mooney_AS_weblog」)に方法が載っていたので参考にさせていただきました。

自分用のASには、ゲームをリセットする際に、以下のようにrootからMovieClipへ命令してみました。

	for(i=0; i

rootからは、こんな感じ。

function deleteSelf():void{
	this.parent.removeChild(this);
}

それを受けるMovieClipのfunctionの方は、こんな感じ。

コツは、「this.parent.removeChild(this);」という感じに、親からのパスで自分を消すようremoveChildするみたいです。
これで、無事に解決できました!


こちらが完成したゲームです!