ドラッグとその範囲

今日はactionscriptでドラッグとその範囲領域。

//sqっちゅうmcオブジェクトをドラッグ出来るように
sq.addEventListener(MouseEvent.MOUSE_DOWN, startMove);

//ドラッグ開始(マウスが押されたとき)
function startMove(event:MouseEvent):void {
//引数にマウスの位置やドラッグ範囲を入れる
sq.startDrag(false,new Rectangle(0,0,140,200));
//動かしている間は半透明に
sq.alpha = 0.5;
}

sq.addEventListener(MouseEvent.MOUSE_UP, stopMove);
function stopMove(event:MouseEvent):void {
sq.stopDrag();
sq.alpha = 1;
}

ドラッグは基本的にstartDrag()とstopDragを覚えれば大丈夫。
startDragの最初の引数は、マウスのロック位置。デフォルトはfalse。
第二引数がrectangleの4つの数値。といっても
sq.startDrag(false,0,0,140,200);
とかはエラーになります。rectangleとして指定。
sq.startDrag(false,new Rectangle(0,0,140,200));
か、
var rec = new Rectangle(0,0,140,200);
sq.startDrag(false,rec);
みたいに指定。こんな間違い私だけか。

rectangleの第三、第四のいずれかの引数を0にすると水平or垂直にしか動かないスライダーっぽいのが作れる。
あと、ドラッグ可能範囲のx,yはムービークリップの位置情報と合わせて考える必要が有る。

今日は動くswfサンプル載せてないんでちょっと面白みに欠けるエントリになっちゃいましたね。出先なもんで。