Ingo Reschke » Posts for tag 'event'

as3 removeEventListener wird nicht aufgerufen.

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");
}

Richtig:

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 );

Posted in as3
Tags: , , ,