3

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

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

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

我的问题是下部画布的鼠标事件处理程序不执行。

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

谢谢!

4

1 回答 1

0

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

于 2015-02-05T18:35:30.570 回答