MouseWheelフォーカスの問題

  • 2008 年 4月 20 日
  • kosuke

前々回のエントリー「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);

もっとしっかり作る必要はありそうですけど、なんとかなりそうです。

“MouseWheelフォーカスの問題” に コメントはありません

コメントをどうぞ