3

重ね合わせた 2 つのキャンバス インスタンスを含む GWT アプリケーションがあります。つまり、画面上の同じ場所に重ねて表示されます。(それがどのように行われるかの例については、http://dev.opera.com/articles/view/html5-canvas-paintinghttp://html5.litten.com/using-multiple-html5-canvases-as-layersを参照してください. 私のコードは 2 番目のリンクに似ています)。

下のキャンバスには、さまざまなマウス イベント ハンドラー (mouseUp、mouseDown、mouseMove など) を実装しました。上のキャンバスには、そのようなハンドラーを実装しませんでした。また、それが違いを生む場合、上部のキャンバスはほとんど透明です。

両方のキャンバスには同じ親 (div 要素) があります。

私の問題は、下部キャンバスのマウス イベント ハンドラが実行されないことです。

私の推測では、上部のキャンバスがイベントをキャプチャし、下部のキャンバスには伝播されないということです。これを回避する方法を知っていますか?GWTウィジェットにマウスイベントを「飲み込む」ように指示する方法はありますか?

ありがとうございました!

4

1 に答える 1

0

この問題を解決するには、GWT カスタム イベント ( GWT Custom Event ) を使用できます。上部のキャンバスに mouseUp、mouseDown、mouseMove ハンドラーをアタッチし、下部のキャンバスに Gwt カスタム イベント ハンドラーを実装します。上部のキャンバスは、下部のキャンバスによってキャッチされるカスタム イベントを発生させます。これが役立つことを願っています

于 2015-02-05T18:35:30.570 に答える