読者です 読者をやめる 読者になる 読者になる

RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

AIRアプリゲームのパフォーマンス向上メソッドその2

AIR AIR for Android AIR for iOS Flash

ゲームアプリは、不要なDisplayObjectが残ってれば残ってるほど、重くなります。たとえ目に見えなくても。いや目に見えない方が怖いw

そこでゲーム開始時にかならずすべてのオブジェクトを一旦掃除してしまえば、かなり確実に軽くすることができます。特に自分が気づかないうちに残ってるオブジェクトなんかは是非掃除したい。実際謎なObjectが10個以上残ってましたw

下記みたいな感じのメソッドです。先日の全アニメ停止メソッドと合わせれば、より効果的に違いない!

//普通は引数のisRecursiveはfalse推奨。pは大抵root
public static function removeAllChildren(p:MovieClip, isRecursive:Boolean=true):void{
	//lenを別変数できりわけないと、loop内でnumChildren変わって半分しか削除できないので注意。
	for(var i:uint = 0, len:uint=p.numChildren; i < len; i++){
		var m:DisplayObject = p.getChildAt(0);//この引数はiではなく0なので注意。
		if(isRecursive && m is DisplayObjectContainer){
			removeAllChildren(m);//再帰処理
		}
		p.removeChild(m);
	}
}