如何点击元素?

用户3494748

我在同一位置有两个形状,而不是相同的颜色,当我在它们上单击时,我想在两个对象上触发点击事件,而不仅仅是第一个。

这两个形状在同一容器中。

我曾尝试getObjectsUnderPoint()stage.on("mousemove"),但该功能增加我的FPS(60〜32〜了,里面也有只是一个执行console.log),因此,这不是一个很好的解决方案。

我尝试了气泡,useCapture,但是我认为这不是我想要的。

我只想点击鼠标后面的所有元素。

如果有人有解决方案,请。

兰尼

这里有几点:

EaselJS对象的工作类似于HTML DOM Elements。如果元素上具有鼠标处理程序,它将阻止其下面其他层次结构中的对象接收事件。这就是它的工作原理。主要区别在于,如果您没有鼠标事件,那么它们将被忽略(例如,如果您将pointerEventsHTML元素上的设置none为让鼠标忽略它)。

您的想法getObjectsUnderPoint是我会建议的。在mousemove上运行任何命中测试逻辑将非常昂贵(mousemove会触发很多操作,因此,如果您enableMouseOver在舞台上,我们可以限制典型的鼠标悬停检查)。

一些优化的方法:

  1. 确保您使用的是mode=2你的getObjectsUnderPoint,这将只检查与鼠标监听对象。这大大减少了检查的开销。[ docs ]

  2. 与其在您自己的mousemove事件上检查舞台,不如设置一个标记以在刻度线上检查它。这至少可以将其限制在您的股票代码FPS上。您还可以设置一个间隔,以减少检查频率。它可能会产生一点可见的滞后,但是您可能会找到一个不错的平衡点。

  3. 减少检查的内容。如果您有一个包含可点击元素的容器,则只能检查该对象的鼠标交互作用。

如果您的对象完全相同,则也可以手动触发第二个项目上的点击。

obj1.on("click", function(event) {
  obj2.dispatchEvent(event);
});

我希望这些方法可以为您提供解决方案。如果您有后续问题,请告诉我。

干杯,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得被点击的元素?

来自分类Dev

如何防止继续点击元素?

来自分类Javascript

如何检测元素外部的点击?

来自分类Dev

如何检测特定元素被点击?

来自分类Dev

Puppeteer - 如何点击内部元素

来自分类Dev

如何使Vimium的元素可点击?

来自分类Dev

如何获得被点击元素的ID

来自分类Dev

如何获得被点击元素的位置

来自分类Dev

如何检查元素是否被点击

来自分类Dev

如何使画布元素可点击

来自分类Dev

如何阻止点击事件创建多个元素?

来自分类Dev

如何获取点击元素的样式 - “currentTarget”

来自分类Java

如何与点击文本编辑的元素?

来自分类Dev

如何点击元素木偶的特定部分

来自分类Dev

如何使HTML中的canvas元素可点击?

来自分类Dev

如何处理子元素点击

来自分类Dev

如何定位被点击元素的最高父级

来自分类Dev

如何触发元素点击角度js?

来自分类Dev

如何防止不同元素的点击释放

来自分类Dev

如何删除子元素点击事件?

来自分类Dev

如何按类获取点击元素的索引?

来自分类Dev

如何获取jstree行元素的点击事件?

来自分类Dev

点击数后如何隐藏元素?

来自分类Dev

如何使用javascript计算元素的点击次数

来自分类Dev

拜托如何点击其他元素

来自分类Dev

如何找到点击元素的ID

来自分类Dev

如何找到点击了哪个“a”html元素

来自分类Dev

如何获得点击元素的索引?

来自分类Dev

如何判断元素是否可点击?- 硒