Ich bin auf das Problem gestoßen das ich ein Eventlistener hatte der sich nicht enfernen lies.
Nach reichlich gegoogle fand ich den Grund. Die ersten 3 Parameter des removeEventListener() müssen mit den ersten 3 Parameter der addEventListener() – Methode übereinstimmen.
Den entscheidenen Hinweis fand ich
hier
removeEventListener(): Removes an event handler added to a listeners list using addEventListener. The same first 3 arguments used in addEventListener must be used in removeEventListener to remove the correct handler.
Falsch:
public function initApp():void{
box.addEventListener(MouseEvent.CLICK, clickHandler);
}
public function clickHandler(event:MouseEvent):void{
trace("click");
box.removeEventListener(MouseEvent.CLICK,onRemoveHandler );
}
private function onRemoveHandler(event:MouseEvent):void{
trace("Handler removed");
} |
public function initApp():void{
box.addEventListener(MouseEvent.CLICK, clickHandler);
}
public function clickHandler(event:MouseEvent):void{
trace("click");
box.removeEventListener(MouseEvent.CLICK,onRemoveHandler );
}
private function onRemoveHandler(event:MouseEvent):void{
trace("Handler removed");
}
Richtig:
public function initApp():void{
box.addEventListener(MouseEvent.CLICK, clickHandler);
}
public function clickHandler(event:MouseEvent):void{
trace("click");
box.removeEventListener(MouseEvent.CLICK,clickHandler );
} |
public function initApp():void{
box.addEventListener(MouseEvent.CLICK, clickHandler);
}
public function clickHandler(event:MouseEvent):void{
trace("click");
box.removeEventListener(MouseEvent.CLICK,clickHandler );
}
box.addEventListener(MouseEvent.CLICK, clickHandler);
box.removeEventListener(MouseEvent.CLICK,clickHandler );