2016-08-17 103 views
0

避免在easelJS中触发事件处理程序的最佳方法是什么?在其他项目中,我会使用e.stopPropagation,但这似乎不适用于画架。在EaselJS中停止鼠标事件

问题是我正在使用一个使用easelJS的库,并有一个“pressmove”事件处理程序来启用拖放操作。我想阻止这个处理器被触发,如果一个修改键,如ctrl或shift,在事件触发时被保持。在检查一个修饰符是否被保持之后,如果需要的话,理想的情况是能够触发原始的pressmove处理程序。

回答

1

stopPropagation方法可防止事件冒泡,不会触发。您可以使用stopImmediatePropagation来防止同一级别的其他听众在之后收到事件(行为取决于事件的顺序)。

理想情况下,如果您有一个条件要阻止某个行为,请在您的事件处理程序中查看该条件,并有条件地处理该行为。

obj.on("pressmove", function(e) { 
    if (someCondition) { 
    doSomething(); 
    } 
}); 

您还可以切换到mouseEnabled防止物体从响应鼠标事件(如果你想阻止一个容器的子事件mouseChildren)。

obj.mouseEnabled = false; 

希望有帮助。