2011-08-25 103 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"); 
      } 
      private function closeHandler(event:CloseEvent):void{ 
       PopUpManager.removePopUp(modalCfd); 
       removeListeners("modalCfd"); 
      } 
      public function removeListeners(listener:String):void{ 
       if(listener == "modalCfd"){ 
        modalCfd.removeEventListener("addItemResult", addItem_resultHandler); 
        modalCfd.removeEventListener("addItemResize", addItemResize_resultHandler); 
        modalCfd.removeEventListener(Event.CLOSE , closeHandler); 
       } 
      } 

正如你所看到的,我是一個具有良好實踐的新手(幾乎任何東西)我如何正確刪除事件偵聽器?這是我在那裏處理的一個彈出窗口。對不起,如果該功能沒有多大意義,我簡化它以適應stackoverflow。如何在此函數中正確刪除事件偵聽器

回答

1

您已經有了對象的引用,所以只需在您的removelisteners函數中使用它。

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(); 
      } 
      private function closeHandler(event:CloseEvent):void{ 
       PopUpManager.removePopUp(modalCfd); 
       removeListeners(); 
      } 
      public function removeListeners():void{ 
       modalCfd.removeEventListener("addItemResult", addItem_resultHandler); 
       modalCfd.removeEventListener("addItemResize", addItemResize_resultHandler); 
       modalCfd.removeEventListener(Event.CLOSE , closeHandler); 
      } 
+0

對不起,我添加了這個條件,因爲我的模塊有多個彈出窗口實例,我想創建一個函數來刪除它們。但即使我刪除了該條件,該功能也無法正常工作。 – overmann

+0

你知道,我說得對,我相信彈出窗口表現怪異,因爲我在其他條件下將它定位錯了,我不想在這裏發帖。因爲它可能會混淆更多。謝謝。 – overmann

相關問題