MouseWheelフォーカスの問題
- 2008 年 4月 20 日
前々回のエントリー「SWFMacMouseWheelで気づいたこと」ですが、preventDefault()の制御を試してみました。
フォーカスが抜けなくなる問題はある程度対応できるかも。
swfmacmousewheel2.jsを修正以下のように修正。
swfmacmousewheel2.jsを変更
var wheel = false; //追加 ホイールイベント実行可否判定フラグ function setWheel(b){ wheel = b; }; //追加 フラグ変更関数、Flashから実行 var swfmacmousewheel = function(){ ----------中略---------- //追加 フラグを判定してlメソッドを実行 var m = function(event){ if(wheel) l(event); }; //変更 ホイールイベントのコールバックをmにする if (window.addEventListener) window.addEventListener('DOMMouseScroll', m, false); window.onmousewheel = document.onmousewheel = m; ----------中略---------- }(); |
で、flashでステージ上のカーソル有無を判定してExternalInterfaceを使いJavaScriptを実行。setWheelにtrueまたはfalseを渡す。
if(ExternalInterface.available) ExternalInterface.call("setWheel", true); |
もっとしっかり作る必要はありそうですけど、なんとかなりそうです。