首先定义了一个类:
class C1 extends Sprite
{
public function C1() { super(); }
}
然后在文档类中编写以下代码:
setInterval(function(a:Sprite):void {
a.addChild(new C1());
}, 10, this);
setInterval(function(a:Sprite):void {
a.removeChildAt(0);
}, 11, this);
然后运行它并检查内存ustage,它将变得越来越大......
从root删除子进程时如何释放内存?
答案 0 :(得分:2)
Flash VM使用garbage collection释放内存。除非您明确调用System.gc()
,否则播放器将在任意时间执行GC,但此方法仅适用于AIR和调试器版本的Flash Player。因此,即使已经释放了程序中的资源,内存的使用仍可能继续增加,直到GC进程执行为止。
另请注意,addChild()
和removeChild()
只是在显示列表中添加和删除项目。要真正释放资源,您必须将程序中保留的所有引用显式设置为null
。