Как правильно удалить прослушиватели событий в этой функции - PullRequest
0 голосов
/ 26 августа 2011
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 Ответ

1 голос
/ 26 августа 2011

У вас уже есть ссылка на ваш объект, поэтому просто используйте ее в функции 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);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...