作者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
推 pm2001:flash引擎自己有垃圾回收器 05/14 13:56
→ vml93:如果我一直產生新的pic實體,一樣用上面的方法就可以了嗎? 05/14 13:59
推 cjcat2266:只要一個物件完全沒有reference就會被標為「可移除」 05/14 14:55
→ cjcat2266:記憶體不夠時,GC就會把這些物件移除掉 05/14 14:55
→ cjcat2266:記得需要把物件removeEventListener()才可,不然殺不掉 05/14 14:57
→ cjcat2266:或者在addEventListener()時給weakReference參數false值 05/14 14:57
→ vml93:哦~我明白了,謝謝 05/14 19:25