import flash.events.MouseEvent; a.b.addEventListener(MouseEvent.CLICK,bclickHandler); function bclickHandler(e:MouseEvent):void { trace("bclick"); a.addEventListener(MouseEvent.CLICK,aclickHandler); } function aclickHandler(e:MouseEvent):void { trace("aclick"); }
第一次点击B方块,会发现输出
bclick
aclick
在bclickHandler方法执行的时候为a方块添加了监听事件,由于AS3的事件冒泡机制,事件直接传递到a方块,所以输出 了ackick;
如果点击b方块的时候如何不让a接收到呢
在bclickHandler 方法 添加一行
e.stopPropagation();
这个方法是AS3提供用来中断冒泡的