我有一个包含4个按钮的MovieClip:
当用户将鼠标移出容器时,它应该消失:
this.resolutions.addEventListener(MouseEvent.MOUSE_OUT, this.resolutionsClose);
当用户将鼠标移出4个按钮时,事件会冒泡到容器中。这不是预期的行为。当4个按钮都没有鼠标输出处理程序时,如何停止传播?
答案 0 :(得分:3)
侦听容器上的MouseEvent.ROLL_OUT事件。
答案 1 :(得分:2)
你有2个解决方案(加上TandemAdam建议的解决方案):
1 - 使用useCapture参数
this.resolutions.addEventListener(MouseEvent.MOUSE_OUT, this.resolutionsClose, true);
当您在显示列表中向下钻取而不是冒泡时,您将收到该事件,因此您的容器将在其子项之前发送。
2 - 如果event.target是您的容器,请检查您的事件处理程序:
private function onMouseOut(e:Event):void
{
if(e.target == this.resolutions){
// the original dispatcher was your resolutions container.
}
}
答案 2 :(得分:0)
不要让你的按钮成为容器的子项。或者在按钮上,监听同一事件,并在其上调用stopImmediatePropagation()。