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