ムービークリップのドラッグ範囲

ムービークリップを決められた範囲内をドラッグして境界線をはみ出ないように制御する方法のメモ。

getBounds(または getRect) っていう便利なメソッドを使うと、ムービークリップの領域が取り出せるんですね。


// マウスダウンでドラッグ開始
// itemmc:マウスで移動させる MovieClip
// basemc:この MovieClip の上をitemmc が 移動する
itemmc.addEventListener(

      MouseEvent.MOUSE_DOWN,

      function (event:MouseEvent) {

       // getBounds で itemmc の領域を取り出し
       var objrect:Rectangle = event.currentTarget.getBounds(basemc);
       var offsetx:Number = event.currentTarget.x - objrect.left;
       var offsety:Number = event.currentTarget.y - objrect.top ;
       
       // itemmc が移動できる範囲を設定
       var basemcrect:Rectangle = new Rectangle(
        offsetx,
        offsety,
        basemc.width - objrect.width,
        basemc.height -objrect.height
       );
       
       // 設定した範囲でドラッグ開始
       event.currentTarget.startDrag(false,basemcrect);
      }
     );

// マウスアップでドラッグ終了
itemmc.addEventListener(

      MouseEvent.MOUSE_UP,

      function (event:MouseEvent) {
       event.currentTarget.stopDrag();
      } 
     );

コメント