0

我有一个应用程序,它使用矢量对象在舞台上创建和显示多个动态项目。

当我退出游戏然后返回 inGame 屏幕时,对象仍然可见。我尝试了多种删除方法,但没有任何效果。

我已经取消了向量,但对象仍然保留在舞台上。

基本上我只需要在游戏退出时清除舞台。

我在用:

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

去创造。

用户通过点击暂停按钮然后点击“返回菜单”按钮退出游戏。

任何指导表示赞赏。

4

2 回答 2

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 回答
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 回答