2011-08-25 17 views
0
public function doAddItem(itemConcepto:int):void{ 
       modalCfd = new modalCFDItems(); 
       modalCfd.addEventListener(Event.CLOSE, closeHandler); 
       modalCfd.addEventListener("addItemResult", addItem_resultHandler); 
       modalCfd.addEventListener("addItemResize", addItemResize_resultHandler);     
       PopUpManager.addPopUp(modalCfd, this, true) 
       PopUpManager.centerPopUp(modalCfd); 
      } 
      private function addItem_resultHandler(event:Event):void{ 
       addItemStuff(); 
       PopUpManager.removePopUp(modalCfd); 
       removeListeners("modalCfd"); 
      } 

這是否做到這一點,或者我要明確removeEventListener?是否removePopUp方法,刪除事件監聽器嗎?

+0

你有沒有打過電話後removePopUp跟蹤modalCfd'的'價值?這可能是參考丟失,所以去除彈出之前,你應該刪除監聽器。 – shanethehat

回答

1

如果您想要GC啓動,您必須始終刪除收聽者。
這裏沒有辦法繞過它。
而且也爲空的對象是最好的了。

+0

'asMan'是對的。我相信你也可以使用*弱*引用,但我建議你只使用在** **所需的情況。 – Jacksonkr