9

Flash にはマウス ホイール イベント ( MouseEvent.MOUSE_WHEEL ) がありますが、かなりの問題があります。

1 つ目は、イベントがまだ Mac でサポートされていないことです。そのため、たくさんのソリューションがあり、そのすべてが (基本的に) javascript でマウスホイール (または DOMMouseScroll) イベントをキャプチャし、それを Flash アプリに渡します。幸いなことに、私がテストしたすべての Mac ブラウザで、これはフラッシュがフルスクリーン モードの場合にも機能します。

問題 2 は、小さな「デルタ」を持つマウス ホイール イベントをフラッシュが無視することです。たとえば、「スムーズ スクロール」機能を備えた Microsoft の IntelliPoint Mice は、この問題を引き起こします。これに対する解決策は、Mac の場合と同じです。つまり、ブラウザで JavaScript のマウス ホイール イベントをキャプチャし、それをアプリに渡します。問題は、私がテストした Windows のブラウザー (firefox、つまり safari、および chrome) の問題であり、フラッシュが全画面モードの場合、このイベントをキャプチャーしないようです。誰かがそれを修正する理由または方法を知っていますか?

私は現在、Windows でフルスクリーン モードの場合 (フラッシュ マウスホイール イベントからイベントを取得する時点) を除いて、(非フルスクリーン モードまたはフルスクリーン モードで) 常に JavaScript からイベントを取得するハイブリッド ソリューションを使用しています。したがって、失敗するのは、小さなデルタを持つマウスを使用した Windows の全画面表示モードのみです。誰もが完全な解決策を持っていますか? それとももっと良いものですか?

4

5 に答える 5

3

これは、adobe の JIRA に関する既知の問題です。修正するまで待つか、MouseEvent.MOUSE_WHEEL の代わりに別のイベントを使用する必要があります。Windows では Flash Player の実装が Mac や Linux と完全に異なるため、Windows では動作しません。Mac と Linux は GTK を使用してプラグインのハンドルを実装します。Windows では、Win32API Common HWND を使用します。これは、フル スクリーン モードでフォーカスを盗むため、ブラウザでスクロール イベントがディスパッチされません。Mac と Linux では、GTK はプラグインのサイズをデスクトップのサイズに引き伸ばすだけで、実際のフルスクリーンは行いません。これは、これらのシステム内での GTK の動作です。何もできません。

于 2010-07-02T19:32:57.093 に答える
0

Pixelbreaker の MacMouseWheelは、Mac での全画面スクロールに成功しましたが、しばらく使用していませんでした (たとえば、Safari 5 で)。

欠点は、ページ全体のイベントをキャプチャすることです。そのため、Flash 要素が画面上の小さなボックスにすぎない場合でも、HTML のスクロールが失われます。

ただし、基本的には、既に構築したものと、全画面表示を有効にしたときに彼が macmousewheel.js で使用しているものとを切り替えることができます。

お役に立てば幸いです、頑張ってください。

于 2010-06-28T06:20:03.860 に答える
0

あなたのソリューションは最高のソリューションの 1 つです。1つだけが良いです-マウスホイールを使用しないでください:(

アドビはそれで何かをする必要があります(および他のコントローラーのサポート)。

于 2009-10-15T13:36:19.657 に答える
0

MouseEvent.MOUSE_WHEEL は、Gala ベータ版および 10.1 最終版以降、Mac で正常に動作するようです。Safari と Chrome の両方でマジック マウスとトラック パッドを使用して、マウス ホイール イベントをトリガーできます。

于 2010-06-16T01:25:04.387 に答える