我有一个GWT应用程序,它包含两个叠加的画布实例,即屏幕上的位置相同,一个在另一个上面。 (有关如何完成的示例,请参阅http://dev.opera.com/articles/view/html5-canvas-painting,http://html5.litten.com/using-multiple-html5-canvases-as-layers。我的代码与第二个链接更相似。)
对于下部画布,我实现了各种鼠标事件处理程序 - mouseUp,mouseDown,mouseMove等。我没有为上部画布实现这样的处理程序。此外,如果这有任何区别,上部画布大多是透明的。
两幅画布都有相同的父级(div元素)。
我的问题是较低的画布'鼠标事件处理程序不会执行。
我的猜测是上部画布捕获事件,并且它们不会传播到下部画布。你知道解决这个问题的方法吗?有没有办法告诉GWT小部件“吞下”鼠标事件?
谢谢!
答案 0 :(得分:0)
您可以使用GWT自定义事件(GWT Custom Event)来解决此问题。将mouseUp,mouseDown,mouseMove处理程序连接到上部画布,并将Implement Gwt Custom Event Handler连接到下部画布。现在当MouseUp或MouseDown时事件在上部画布中触发一个自定义事件,该事件将被下部画布捕获。希望这有助于