【问题标题】:Stopping Mouse Events In EaselJS在 EaselJS 中停止鼠标事件
【发布时间】:2016-08-18 03:39:46
【问题描述】:
防止在画架JS中触发事件处理程序的最佳方法是什么?在其他项目中,我会使用 e.stopPropagation 但这似乎不适用于easelJS。
问题是我正在使用一个使用easelJS 并具有“pressmove”事件处理程序来启用拖放的库。如果在触发事件时持有修饰键(如 ctrl 或 shift),我想阻止此处理程序被触发。在检查是否保留了修饰符后,如果需要,我理想情况下可以触发原始的 pressmove 处理程序。
【问题讨论】:
标签:
javascript
createjs
easeljs
【解决方案1】:
stopPropagation 方法防止事件被冒泡,而不是被触发。您可以使用stopImmediatePropagation 来防止同一级别的其他侦听器在您之后 接收事件(行为将取决于事件的顺序)。
理想情况下,如果您有想要阻止某行为的条件,请在您的事件处理程序中查找该条件,并有条件地处理该行为。
obj.on("pressmove", function(e) {
if (someCondition) {
doSomething();
}
});
您还可以切换mouseEnabled 来阻止对象响应鼠标事件(如果您想阻止容器子级上的事件,还可以切换mouseChildren)。
obj.mouseEnabled = false;
希望对您有所帮助。