Buttons liegen übereinander, Eventlistener werden zwei mal getriggered

Manchmal hat man zwei übereinanderliegende Buttons, die jeweils auf einen Eventlistener reagieren. Wenn man bspw. eine rechteckige Fläche hat, die als Button fungiert und über der rechteckigen Fläche einen weiteren Button, so werden standardmäßig beide Eventlistener (für die Fläche und den Button) getriggered, wenn der Button bspw. angeklickt (MouseEvent.CLICK) wird. Das Problem lässt sich jedoch einfach lösen, indem man die useCapture-Eigenschaft bei der Registrierung des Eventlisteners (für den Button) auf „true“ setzt.

myRect.addEventListener(MouseEvent.CLICK,rectClicked);
myButton.addEventListener(MouseEvent.CLICK,buttonClicked,true);
function rectClicked(e:MouseEvent):void {
trace("rectClicked");
}
function buttonClicked(e:MouseEvent):void {
trace("buttonClicked");
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.