今天项目中遇到一个问题,就是在点击场景上的物体a时,a响 应了鼠标事件,然后舞台也响应了鼠标事件,而项目要达到的效果是只让a响应鼠标事件,舞台不要响应鼠标事件.

为了达到这个效果,可以这样处理:在a的响应事件函数末添加事件的stopImmediatePropagation方法.

如果只想让舞台响应鼠标事件,而a不响应的话,可以将stage.mouseChildren = false;

a.addEventListener(MouseEvent.CLICK,doIt);

function doIt(e):void{

trace(“stage”);

}

//stage.addEventListener(MouseEvent.CLICK,doIt);

stage.mouseChildren =false;

stopImmediatePropagation和stopPropagation的区别

stopImmediatePropagation()方法被调用后,将马上阻止后面所有的事 件,即使这个事件是同一个节点 所具有的。而stopPropagation()方法被调用后,对当 前节点并不影响,只是阻止了后面节点 root和stage的事件。

 因此在事件流中,如果每个节点只注册一个事件,使用 stopImmediatePropagation()方法和stopPropagation()方法是一样的,都是阻止当前节点以后的事件传递,但是, 当一个节点注册多个相同事件时,这些事件会有优先级,stopImmediatePropagation()方法将阻止优先级低的事件发生,而 stopPropagation()方法对这些具有优先级的事件并没有影响。

更详细信息参考:http://shengjijj.blog.163.com/blog/static/1331973762009102621851890/