2009-03-20 13 views
2

マウス操作コードを書くたびに、onmousedown/onmouseup/onmousemoveモデルは常に、不必要に複雑なコードを生成して、すべての種類のUIバグを引き起こすようになりました。onmousedown/onmouseupはどのようにして正しく使用されますか?

最近、ソフトウェアの大部分で見られる主な問題は、ウィンドウの外にドラッグして放す「ゴーストマウス」イベントです。いったんウィンドウに戻ると、アプリケーションはボタンが上がっていてもマウスがダウンしていると考えています。これは、画面の境界線に向かうものを強調表示しようとするときに特に厄介です。

マウスコードを記述する正しい方法はありますか、モデル全体に​​欠陥がありますか?

答えて

2

通常、マウスを動かすとマウスイベントがキャプチャされるので、アプリケーションウィンドウから移動するキャレットに関係なく、マウスの移動とマウスの上がコードを通過します。

最近では、VMまたはリモートセッションを実行しているときに、ホスト上のウィンドウで表されるマシンの画面領域外でマウスを追跡することが難しいアプリケーションです。

+0

これはおそらくバブルキャプチャですか? –

0

マウスボタンを追跡しようとしている環境がわかりませんが、これを処理する最善の方法は、onmouseupを検出した後でonmouseupを100%追跡するマウスリスナーを持たせることです。

この方法では、ユーザーがマウスボタンを離した画面領域は問題ではありません。発生した場所にかかわらずリセットされます。

関連する問題