マウスホイールでスクロール(AS3.0)

2008年2月 3日 10:07
これは結構使えるので忘れないようにメモ。

やり方はswfobject(使ってるのはver1.5だけどもう2.0なのね、、)でswfを配置して、mousewheel.jsというjavascriptからswf側でマウスホイールの数値を受け取るという感じ。

swf側でjavascriptを受け取るにはExternalInterfaceをインポートしておく。
で、↓こんな感じの関数を用意すれば値を受け取れる。 あとは、スクロールさせたいMCなりとスクロールバーを用意して
それぞれに変数を受け取ったときの関数を用意すれば完了。

今回、swfを縦横100%で配置して、ウィンドウサイズが変わっても
常にMCは中央、スクロールバーは右側に配置という関数も加えた。
ウィンドウのリサイズは、↓こんな感じでやっとけばよい。 あと、上下矢印キーにも対応させた。
KeyboardEventをインポートしておくこと。


それと、マウスホイールに直接は関係ないけど、
スクロールバーのロールアウトのとき、AS2.0だとonReleaseOutsideを設定してたのが、AS3.0では無くなったみたいなので、stageにロールアウトと同じ設定をする。


ボタンに stage 今回に限らず、ボタンには絶対設定しておいたほうがいい。


あ、ブラウザはfirefox2とIE7で動作確認済み。
IEでステージをクリックしない状態でswfにフォーカスを当てるために、htmlのbodyタグに↓を記述。 ※なぜかfirefoxで、キーボードイベントはクリックしないと効かない、、

サンプル
ソース
prev  |  next


0 trackbacks

blogs refer to this article: マウスホイールでスクロール(AS3.0)

trackback URL: http://www.at-sonic.com/mt/mt-tb.cgi/65