stopPropagation() 与 stopImmediatePropagation() 都能阻止后续的侦听行为,即能阻挡掉事件流中事件的冒泡,简而言之就是让后面的侦听都不执行。
两者的区别在于,stopImmediatePropagation 会让当前对象的次优先级的所有监听都不执行,
一般情况下两者用哪个都可以,但比如下面代码,这种使用stopImmediatePropagation()更有效
addEventListener(MouseEvent.MOUSE_DOWN,down,false,2);
addEventListener(MouseEvent.MOUSE_DOWN,down2,false,1);
function down(event:MouseEvent):void
{
trace("I...do");
event.stopImmediatePropagation();
}
function down2(event:MouseEvent):void
{
trace("I...do,too");
}
两者的区别在于,stopImmediatePropagation 会让当前对象的次优先级的所有监听都不执行,
一般情况下两者用哪个都可以,但比如下面代码,这种使用stopImmediatePropagation()更有效
addEventListener(MouseEvent.MOUSE_DOWN,down,false,2);
addEventListener(MouseEvent.MOUSE_DOWN,down2,false,1);
function down(event:MouseEvent):void
{
trace("I...do");
event.stopImmediatePropagation();
}
function down2(event:MouseEvent):void
{
trace("I...do,too");
}