0

我正在做一个程序,我正在通过数组创建实例,但我不确定以后如何摆脱它们..为了更清楚地解释这里是我的代码:

(我很快就举了一个例子……所以这就是为什么代码中只有一个变量)

for (var q:int = 0; q < caw1.length; q++)
{
    addChild(caw1[q]);
    caw1[q].x = 9;
    caw1[q].y = 833;
}



half2.addEventListener(MouseEvent.CLICK, nxt2);
function nxt2(e:MouseEvent)
{
            removeChild(half2);
    removeChild(caw1[1]);
    half2.removeEventListener(MouseEvent.CLICK, nxt2);
}
4

2 回答 2

1

再次循环它们有什么问题?

function nxt2(e:MouseEvent)
{
    removeChild(half2);
    for (var i:int = 0; i < caw1.length; i++) {
        removeChild(caw[i]);
    }
    half2.removeEventListener(MouseEvent.CLICK, nxt2);
}
于 2013-02-13T06:30:56.143 回答
0

FP 11 之后,又增加了一个新方法。那就是removeChildren()。使用 aremoveChildren()而不是使用 for 循环removeChild()。更合理。

从 DisplayObjectContainer 实例的子列表中删除所有子 DisplayObject 实例。已删除子项的 parent 属性设置为 null ,如果不存在对子项的其他引用,则对对象进行垃圾回收。

垃圾收集器重新分配未使用的内存空间。当某个变量或对象不再被主动引用或存储在某处时,如果没有其他对它的引用,垃圾收集器会扫描并清除它曾经占用的内存空间。

试试这个:

function nxt2(e:MouseEvent)
{
    removeChild(half2);
    removeChildren(0,caw1.length-1);
    half2.removeEventListener(MouseEvent.CLICK, nxt2);
}
于 2013-02-13T06:51:56.953 回答