2009-10-15 23 views
9

Flashにはマウスホイールイベント(MouseEvent.MOUSE_WHEEL)がありますが、それにはかなりの問題があります。Flash:フルスクリーンモードでマウスホイールイベントを使用する(WindowsおよびMac)

最初は、イベントがMacでまだサポートされていないということです。したがって、solutionsの束があります。これらのすべては(基本的に)マウスホイール(またはDOMMouseScroll)イベントをjavascriptで取得し、Flashアプリケーションに渡します。幸いにも、私がテストしたすべてのMacブラウザの下で、これは、フラッシュがフルスクリーンモードになっているときにも機能します。

問題2は、小さな「デルタ」でマウスホイールのイベントを無視するという問題です。たとえば、MicrosoftのIntelliPoint Mice with "Smooth Scroll"が原因でこの問題が発生します。これに対する解決策は、macのソリューションと同じです。つまり、ブラウザでjavascriptマウスホイールイベントをキャプチャしてアプリに渡します。問題は、私がテストしたウィンドウ(firefox、つまりサファリ、クロム)のブラウザのことです。フラッシュがフルスクリーンモードのときは、このイベントをキャプチャしていないようです。誰でもそれを修正する理由や方法を知っていますか?

現在のところ、フルスクリーンモード(Windowsのフルスクリーンモードから)の場合を除いて、javascript(非フルスクリーンモードまたはフルスクリーンモード)でイベントを受け取るハイブリッドソリューションがあります。だから、失敗する唯一の時間は小さなデルタを持つマウスでWindows上のフルスクリーンモードです。誰もが完全なソリューションを持っていますか?それとももっと良いの?

答えて

3

Adob​​e社のJIRAに関する既知の問題です。これを修正するには待つか、MouseEvent.MOUSE_WHEELではなく別のイベントを使用する必要があります。 Flash Playerの実装がMacとLinuxのWindowsでは完全に異なるため、Windowsでは動作しません。 MacとLinuxはGTKを使ってプラグインハンドルを実装しています。ウィンドウズでは、Win32API Common HWNDを使用します。これはフルスクリーンモードに焦点を当て、ブラウザ上でスクロールイベントの非ディスパッチを引き起こします。 MacとLinuxでは、GTKはプラグインのサイズをデスクトップのサイズに拡張するだけで、実際のフルスクリーンはしません。これらのシステムの中でのGTKの動作です。何もできません。

0

あなたの解決策は最高です。一方だけが優れている - それ(および他のコントローラをサポートする)と

Adob​​eは何かを行う必要があります:(マウスホイールを使用していない

0

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

0

Pixelbreaker's MacMouseWheelはMacで全画面スクロールを成功させましたが、Safari 5たとえば、)

欠点は、ページ全体のイベントをキャプチャすることですフラッシュ要素が画面上の小さなボックスであっても、HTMLのスクロールが失われます。

しかし、基本的には、すでに作成したものとフルスクリーンを有効にしたときにmacmousewheel.jsで使用しているものを切り替えることができます。

希望、幸運を願っています。

関連する問題