如何在闪存中清理内存,我尝试removechild,null但内存不干净

时间:2013-11-28 20:20:10

标签: actionscript-3 flash flashdevelop

闪存中的内存如何干净,我尝试删除子,null但内存不清理。

var m:m_mc = new m_mc ();

addChild (m);    
clean.addEventListener(MouseEvent.CLICK, fl_clean);

function fl_clean(event:MouseEvent):void
{       
    removeChild (m);    
    m = null;
}

2 个答案:

答案 0 :(得分:1)

你是如何准确检查内存的?什么样的对象是“我”?

将其设置为null并不意味着内存将立即恢复。您刚刚实现该对象符合垃圾收集条件。垃圾收集器可能会或可能不会在下一个周期中提取它,您可能永远不会知道,也无法确定。当运行时需要内存或者强制垃圾收集器选择它的某些其他条件时,它将被拾取。如果您使用大位图,可以使用.dispose()方法立即恢复内存。但是位图对象本身仍将在内存中持续存在,等待垃圾收集器在“决定”这样做时进行拾取。

答案 1 :(得分:0)

使用addEventListener的weakeventlistener参数或fl_clean中的removeEventListener。