当前位置:软件学习 > Flash >>

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

为了防止内存泄漏,可能需要将不需要的显示元素清楚掉,如果这些需要被清除的元素里还有对象递归的含有子显示容器,那可能还是不会被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);就可以了

补充:flash教程,动画技术
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,