【问题标题】:Filter events globally in KONVAJS在 KONVAJS 中全局过滤事件
【发布时间】:2021-07-09 13:02:20
【问题描述】:

是否可以(例如通过覆盖原型)在 KONVA 中全局过滤(启用/禁用)事件?

用例: 我有一个用 KONVA 构建的交互式应用程序。一开始,我想展示用户界面的“演示”:我正在显示移动的第二个鼠标光标和触发事件,这些事件由应用程序处理以演示可能的交互。一切正常,但在演示过程中,应用不应监听真实的鼠标事件,而应仅监听模拟事件(在事件对象中设置了特殊属性)。

【问题讨论】:

  • 如果您的鼠标事件是针对形状的,那么您可以在演示运行时在整个舞台上粘贴一个巨大的透明矩形和侦听 = false。这将允许您的演示事件被触发并停止用户干预。

标签: events konvajs


【解决方案1】:

对于该用例,只需为您的舞台设置listening: false。它将禁用舞台及其子级上的所有事件。

您可以关闭事件仅用于演示。完成后,您可以使用listening: true 打开鼠标/触摸/指针事件。

【讨论】:

  • 感谢您的回答,但您误解了我的意思。在“演示”期间,我使用 fire() 触发鼠标事件(mousemove、mousedown、mouseup、touchstart 等)。这些事件由应用程序处理,因此“演示”显示所有用户惰性操作。这就是为什么在演示期间所有处理程序都必须工作,因此设置“listening: false”是没有解决方案的。在“演示”期间,处理程序应该只对我触发的事件(事件对象中的特殊属性已设置)做出反应,而不是对真实的用户事件作出反应。这就是为什么我要“过滤”...
  • 如果你设置listening: false,你的由“fire”触发的自定义事件应该可以正常工作。你试过了吗?
猜你喜欢
  • 1970-01-01
  • 2014-09-20
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多