0

ベクトルオブジェクトを使用して、ステージ上に複数の動的アイテムを作成および表示するアプリがあります。

ゲームを終了してゲーム内画面に戻ると、オブジェクトは引き続き表示されます。削除する方法をいくつか試しましたが、何も機能しませんでした。

ベクトルをnullにしましたが、オブジェクトはまだステージに残っています。

基本的には、ゲームが終了したときにステージをクリアする必要があります。

使ってます:

var item = new Vector.<Item>();

作成します。

ユーザーは、一時停止ボタンを押してから[メニューに戻る]ボタンを押してゲームを終了します。

任意のガイダンスをいただければ幸いです。

4

2 に答える 2

0

何かに対してを実行するaddChild()と、その何かはそれへの別のリンク、つまりディスプレイリストから受け取ります。したがってremoveChild()、実際にベクターをドロップする前に、ベクターに格納する各動的オブジェクトを手動で呼び出す必要があります。

var item:Vector.<Item>;
for (var i:int=item.length-1;i>=0;i--) 
    item[i].parent.removeChild(item[i]);
item=null;
于 2012-11-19T10:07:52.707 に答える
0

すべてのDisplayObjectがitemVectorにあり、Itemがの祖先であるDisplayObject場合、メイン画面に移動するときに実行される次のループは、それらをコンテナーから削除します。

var child:Item;
while(item.length)
{
    child = item.shift();
    if(child)
    {
        //perform some cleaning functionality e.g. child.destroy();//if there is destroy method for disposing Item class
        //
        if(child.parent)
        {
            child.parent.removeChild(child);
        }
        child = null;
    }
}
//
item = null;
于 2012-11-19T10:50:27.120 に答える