クロスOSなマウスホイールアクション [Edit]

MX 2004にて追加されたonMouseWheelですが、MACでイベントを取れないという致命的な面があり、対応策としてaddCallbackの使用法を紹介します。

060912.jpg

手法としてはJavaScriptで値をaddCallbackに渡します。

公開直前微調整で不具合が出てしまっていたようです。
現在復旧完了しました。

使用したサンプルはこちら
http://www.muraken.biz/f-site/scroll


JavaScriptに関してはこちらをご参照ください。
▽AS側の記述▽
import flash.external.*;
var methodName = "handleScrollEvent";//JavaScriptからの呼び出し名
var instance = null;
var method = scrolling;//実行function名
var wasSuccessful = ExternalInterface.addCallback(methodName, instance, method);
function scrolling(delta){
//実行内容
}

こんな感じで書いてあります。
詳しくはヘルプよりActionScript 2.0 リファレンスガイド
ActionScript クラス > ExternalInterface (flash.external.ExternalInterface) > addCallback (ExternalInterface.addCallback メソッド)
をご覧ください。

この方法ですとmac osXでもonMouseWheelイベントの取得が可能となります。
デメリットとしては、FlashPlayer8が必要なことでしょう。
macユーザーを諦めるか、FlashPlayer8未満のユーザーを諦めるか。
現時点では難しい選択です。
(やり方次第で"Mac&&FlashPlayer8未満"以外には対応できますね。)
当然ドラッグできるバーを設けるべきですが、今回のサンプルは割愛しています。
動きも分かりやすくするため、少々大げさにしてあります。

サンプルFLA(FLASH8)&XML&img


▽免責事項▽
 このサンプルを使用した場合、または使用できなかった等のいかなる損害も、
 制作者 むらけん 及び F-site は、その責を負いません。
 ご自身の責任においてご使用ください。

その他の記事