【9RIA—沐枫】—【基础小知识】第28节(垃圾回收机制)
转载:9RIA游戏开发者社区(天地会)作者:沐枫(原天地会大神)
【基础小知识】系列教程(总目录)——沐枫大神出品
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import others.Rect;
// ____________目的:把添加到显示对象容器里的rect用垃圾回收机制回收掉__________________________
public class Main extends Sprite
{
private var rect:Rect;
public function Main()
{
rect=new Rect(150,150);
addChild(rect);
// ___不建议使用的方法:自动启用垃圾回收 , 弊端:效率低____
// rect.addEventListener(MouseEvent.CLICK,onClickHandler,false,0,true);//最后一个开启为true,作用是当rect被移除时,过会这个时间也将会被自动移除
// _____手动启用垃圾回收(完美)_______
rect.addEventListener(MouseEvent.CLICK,onClickHandler);
}
protected function onClickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
// removeChild(rect);
// rect=null;//不负值为空的话,不会启动垃圾回收
if(rect.hasEventListener(MouseEvent.CLICK))
{
rect.removeEventListener(MouseEvent.CLICK,onClickHandler);
removeChild(rect);
rect=null;
}
// 若只把rect移除,事件忘了移除的话,那么就不会发生垃圾回收,也就是传说中的内存泄漏
}
}
}
不要问我找不到Rect类,前两节都有
源文件:
页:
[1]