作者vml93 (vml93)
看板Flash
标题[问题] 请问关於回收记忆体
时间Thu May 14 13:55:11 2009
请教各位,
小第写了一个pic类别,主要是读一张照片,里面有个方法是这样:
public function kill():void {
parent.removeChild(this);
}
我在另一个fla 新建出来十个pic物件,并设定一直向左移动,移出舞片後就自己移除了
for(var i:int=0;i<10;i++){
var _mc:pic=new pic();
_mc.addEventListener(Event.ENTER_FRAME,go);
}
private function go(evt:Event):void{
evt.target.x+=-1;
if(evt.target.x<0){
evt.target.removeEventListener(Event.ENTER_FRAME,go);
evt.target.kill();
}
}
请问呼叫evt.target.kill()之後是不是会完全移除记忆体了呢,
是看不见了,但总不太确定。
谢谢
--
先把面包顾好,才来寻找爱情...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.202.118
1F:推 pm2001:flash引擎自己有垃圾回收器 05/14 13:56
2F:→ vml93:如果我一直产生新的pic实体,一样用上面的方法就可以了吗? 05/14 13:59
3F:推 cjcat2266:只要一个物件完全没有reference就会被标为「可移除」 05/14 14:55
4F:→ cjcat2266:记忆体不够时,GC就会把这些物件移除掉 05/14 14:55
5F:→ cjcat2266:记得需要把物件removeEventListener()才可,不然杀不掉 05/14 14:57
6F:→ cjcat2266:或者在addEventListener()时给weakReference参数false值 05/14 14:57
7F:→ vml93:哦~我明白了,谢谢 05/14 19:25