javascript - GWT - 允许鼠标事件在两个叠加的 Canvas 之间传播

标签 javascript html gwt mouseevent html5-canvas

我有一个 GWT 应用程序,其中包含两个叠加的 Canvas 实例,即在屏幕上具有相同的位置,一个在另一个之上。 (请参阅 http://dev.opera.com/articles/view/html5-canvas-paintinghttp://html5.litten.com/using-multiple-html5-canvases-as-layers 以获取有关如何完成的示例。我的代码与第二个链接更相似)。

对于下层 Canvas ,我实现了各种鼠标事件处理程序 - mouseUp、mouseDown、mouseMove 等。我没有为上层 Canvas 实现此类处理程序。此外,如果这有什么不同的话,上层 Canvas 大部分是透明的。

两个 Canvas 具有相同的父级(一个 div 元素)。

我的问题是下方 Canvas 的鼠标事件处理程序不执行。

我的猜测是上层 Canvas 捕获事件,并且它们不会传播到下层 Canvas 。你知道解决这个问题的方法吗?有没有办法告诉 GWT 小部件“吞下”鼠标事件?

谢谢!

最佳答案

您可以使用 GWT 自定义事件 ( GWT Custom Event ) 来解决这个问题。将 mouseUp、mouseDown、mouseMove 处理程序附加到上层 Canvas ,并将 Gwt 自定义事件处理程序实现到下层 Canvas 。现在当 MouseUp 或 MouseDown 事件发生时在上层 Canvas 中触发触发一个自定义事件,该事件将被下层 Canvas 捕获。希望这有帮助

关于javascript - GWT - 允许鼠标事件在两个叠加的 Canvas 之间传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157800/

相关文章:

javascript - mapStateToProps 对象未定义

html - ul.menu 颜色不变

javascript - HTML Mobile - 强制隐藏软键盘

java - GWT 中的 ClientBundles 和代码拆分?

java gwt 点击处理程序

JavaScript:如何访问给定的 URL,而无需在浏览器中打开其网页

javascript - 子 div 不在父 div 中并排堆叠

php - config.xml 覆盖导致购物车不可见?

html - 当一首新歌开始使用 Chrome 和 Firefox 中的音频 html5 标签时,播放流媒体音乐停止

java - 如何使用GWT上传的文件?