Createjs防止超链接交互



在我用超链接包装的简单应用程序画布中。一些放置在画布舞台上的对象对click事件有特殊的鼠标交互。是否有任何可能的解决方案,以防止通过点击对象与我的鼠标单击事件监听器超链接跳转?

通常您可以在生成的鼠标事件上调用preventDefault,它将阻止链接事件的触发。

element.addEventListener("click", function(e) { 
    e.preventDefault(); 
}, false);

这是不可能使用EaselJS,因为虽然你可以访问任何EaselJS鼠标事件的nativeEvent, EaselJS根本不使用"点击"事件(而是使用"mousedown"one_answers"mouseup"的组合)。因此,阻止click事件的默认值将不起任何作用。

<<h3>不工作/h3>
// You would expect this to work.
myShape.on("click", function(e) {
    e.nativeEvent.preventDefault(); // Nothing. This cancels a "mouseup" instead.
});

解决方案

但是,您可以很容易地解决这个问题。在被点击的项目上设置一个标志(或者你在应用程序中设置的任何地方)。

myShape.addEventListener("click", function(event) {
  myShape.clicked = true;
}, false);

然后,自己监听画布单击事件,检查并检查标志。之后一定要重置它。这是可能的,因为"click"总是在"mouseup"之后触发

stage.canvas.addEventListener("click", function(event) {
     if (myShape.clicked) { event.preventDefault(); }
     myShape.clicked = false;
}, false);

这里是一个快速的小提琴显示它的工作。http://jsfiddle.net/buqkvb1u/

我们想看看这在EaselJS中处理是否有意义。谢谢你的报告!

相关内容

  • 没有找到相关文章

最新更新