[問題] 請問關於回收記憶體

看板Flash作者 (vml93)時間17年前 (2009/05/14 13:55), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
請教各位, 小第寫了一個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

05/14 13:56, , 1F
flash引擎自己有垃圾回收器
05/14 13:56, 1F

05/14 13:59, , 2F
如果我一直產生新的pic實體,一樣用上面的方法就可以了嗎?
05/14 13:59, 2F

05/14 14:55, , 3F
只要一個物件完全沒有reference就會被標為「可移除」
05/14 14:55, 3F

05/14 14:55, , 4F
記憶體不夠時,GC就會把這些物件移除掉
05/14 14:55, 4F

05/14 14:57, , 5F
記得需要把物件removeEventListener()才可,不然殺不掉
05/14 14:57, 5F

05/14 14:57, , 6F
或者在addEventListener()時給weakReference參數false值
05/14 14:57, 6F

05/14 19:25, , 7F
哦~我明白了,謝謝
05/14 19:25, 7F
文章代碼(AID): #1A2x92Je (Flash)
文章代碼(AID): #1A2x92Je (Flash)