2010-07-03 60 views
0

我的AS3應用基本上是使用以下3〜4次通過添加自定義對象級(僞從主應用程序類代碼)或:內存管理AS3

_movieClipClassVariable = new MyCustomSpriteSubclass();  
_movieClipClassVariable.addEventListener(MyEvents.READY, function(event:Event):void { 
      _hideLoading(); 
      mcHolder.addChild(_movieClipClassVariable);        
     });      

_movieClipClassVariable.addEventListener(MouseEvent.CLICK, myClickHandler); 


private function coverClickHandler(event:Event):void 
{   
    ... 
} 

什麼是正確的方式,讓垃圾回收器回收_movieClipClassVariable之後沒有必要?將它分配給null?刪除所有聽衆?對聽衆使用弱引用?

在此先感謝!

回答

0

爲了得到利用的垃圾收集器的你應該考慮:

  1. 沒有確定處理方法的X.addEventListener內()調用​​
  2. 要從釋放對象上刪除所有事件監聽器內存
  3. 使對象空 4.(可選),您可以強制垃圾收集器調用system.gc();
+0

字面上消除聽衆更好比使用弱引用的偵聽器更方便嗎? http://www.gskinner.com/blog/archives/2006/07/as3_weakly_refe.html – artvolk 2010-07-03 08:15:57

+0

不是「字面意義上的」(因爲這沒有語法意義)。但手動刪除偵聽器總是更好/更安全,而不是懶惰,並依賴於弱引用。儘管如此,我不能傷害到兩者。 – 2010-07-03 23:16:45

+0

除了在調試模式下,System.gc()可能對FP沒有任何影響。 – 2013-10-24 02:44:21