清除指定显示对象中的所有元素

作者:袖梨 2022-07-02

为了防止内存泄漏,可能需要将不需要的显示元素清楚掉,如果这些需要被清除的元素里还有对象递归的含有子显示容器,那可能还是不会被GC收集掉,因此以下函数可以将所有的显示容器全部清除掉:

复制内容到剪贴板
代码:
function clearDisplayList(container:DisplayObjectContainer):void {

        var child:DisplayObject;

        for (var i:Number = container.numChildren - 1; i >= 0; i--) {
                trace("container: " + container.name + "-->i: " + i);
       
                child = container.getChildAt(i);
               
                if (child is DisplayObjectContainer) {
                        // 递归调用
                        clearDisplayList(DisplayObjectContainer(child));
                }
               
                container.removeChild(child);
        }
}

如果想把场景中的所有元素清除掉,直接用clearDisplayList(stage);就可以了

相关文章

精彩推荐