MacでもFlashでマウスホイールが使えるSWFMouseWheel(SWFObjectのアドオン)

pixelbreaker.com/のエントリの紹介。macでもマウスホイールが必要になる場面は今後増えていくと思う(もしかしたらFlashPlayer10で公式サポートしちゃうのかもだけど)んですが日本語でちゃんとこのアドオンを紹介してるサイトがなかったので書いちゃいます。

swfmacwheel
ダウンロードしたzipを開くと「as」と「js」というフォルダがあります。

Flash側の作業

まず、パブリッシュする.flaファイルがあるフォルダに「as」フォルダ内「com」フォルダをそのままコピーします。そして.flaファイル(またはasクラスファイル)を開き

import com.pixelbreaker.ui.MouseWheel;

と書きます。それだけ。公式にはクラスを使った書き方が載ってましたが、一番簡単なのは_rootに直接リスナを貼っちゃうこと。その場合は

MouseWheel.addListener(_root); //注意:addEventListenerじゃない
function onMouseWheel( delta:Number ):Void{
trace(delta);
}

こんな感じ。これでFlash側はOK。
このクラスMouseWheelはExternalInterfaceを使うけど、ExternalInterfaceは明示的にimportしなくても大丈夫です。(MouseWheelクラスでimportするから)

ちなみに、これを使わない場合(Macのホイールを使わない場合)は

_root.mouse_obj = new Object ();
_root.mouse_obj.onMouseWheel = function (delta) {
trace(delta)
}
Mouse.addListener (_root.mouse_obj);

と書きます。僕も最初はこれで書いてたけど、MouseWheelに移植するのは簡単だったので、どうせならMouseWheel使った方がスッキリするかもしれません。

JS側

JSでは例によってSWFObjectを使います。が、ExternalInterfaceを使うのでFlashPlayer8以上じゃないと動作しません。そこで、バージョンが足りない場合はexpressInstallを使ってPlayerのバージョンを上げてもらいます。

まずは<html><head>でjsファイルを読み込みます。

<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/swfmacmousewheel.js"></script>

次に、ExternalInterfaceがちゃんと動作するように、SWFObjectを書き出すDIVにexternalな名前をつけます。

<div id="externalFlash"></div>

その上で、ようやくSWFObject登場。

<script type="text/javascript">
// CDATAセクションて書く
var installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
if (installedVer['major'] >1) {
var so = new SWFObject("test.swf", "external_name", "100", "100", "8", "#ffffff");
so.useExpressInstall('./expressinstall.swf');
so.addParam("menu","false");
so.addParam("allowScriptAccess", "always");
so.write("externalFlash");
var macmousewheel = new SWFMacMouseWheel(so);
}else{
document.write("FlashPlayerが入ってませーん")
}
// ]]>
</script>

アドオンが使われているのがjsの最後の行です。

同梱されていたexpressinstall.swfは使い回しがきくので、そのままサーバに上げてしまいましょう。
これの使い方や作り方はにゃあプロジェクト – SWFObject1.5 + ExpressInstallが詳しいです。

手元にMacがないので動作確認できませんが、作り方は簡単。ただ、最初の導入って結構つまずいちゃいますよね、という話でした。

近いうちに僕が昔ハマッてた、Flashでデスクトップアプリを作る方法を順を追って書いていこうと思います。

この記事には、カテゴリ Flash タグは , がつけられています。