背負い投げとENTER_FRAME

Icon

なんちゃってWebクリエイターがFlashやらActionScriptやらを淡々と書く。ときとき柔道の話しもする。

MacのマウスホイールでScrollPanelをコロコロしたい

3時間くらい詰まってたので後世のため書いとこう。

Flashのコンポーネント全般はMacではマウスホイールが効かない。
自分がWindowsユーザーなら絶対無視するが、
残念なことに、社会人になってからずっ〜とMacユーザー。

とりあえず、SWFWheelを使うことは間違いない。
問題はどうやってスクリプトでコンポーネントのハンドル(サム)を動かすんだ?

verticalScrollPositionってプロバティが怪しいので、
使ってみたらサムが動いた!
ってことで、SWFWheelの設置方法は割愛して、
ScrollPanelとの連携だけ書こう。

package  
{
	import fl.containers.ScrollPane;
	import flash.display.*;
	import flash.events.MouseEvent;
	import org.libspark.ui.SWFWheel;
	
	public class test extends MovieClip
	{
		//今回の主人公、スクロールパネル
		var MyPanel:ScrollPane = new ScrollPane();
		
		public function test() 
		{
			//SWFWheelを初期化
			SWFWheel.initialize(this.stage);
			//マウスホイールのイベントを取得する
			stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
			
			//何かでっかいものをスクロールパネルに突っ込む
			var _pic:pic = new pic();
			MyPanel.source = _pic;			
		}
		
		private function mouseWheelHandler(e:MouseEvent):void 
		{
			//SWFWheelから取得したマウスのスクロールを
			//スクロールパネルのハンドル(サム)を動かす
			MyPanel.verticalScrollPosition -= e.delta;
		}
		
	}

}

ちなみに、ScrollPanelだけじゃなくて、コンポーネント全般にも使えるはず。
Flexの場合はもっと簡単にできるみたい。詳しくはこの方の記事へ。

このエントリーをはてなブックマークに追加  

Category: Action Script 3.0

Tagged: , ,

Leave a Reply

中の人のプロフィール

柔道歴約20年だが諸理由で未だ初段。162cm、60kgくらいの軽量級。得意は背負い投げと巴投げ。2009年、左ヒザ前十字靭帯損傷。ただ今柔道復帰を企んでいる真っ最中。仕事では最近、ActionScriptを書いたり、WordPressをいじったりの日々が続いてる。@renowanにてつぶやいてる。

アーカイブ

Flicker

This movie requires Flash Player 9.0.0