ドラッグ&ドロップを設定するには

■ ドラッグ&ドロップを設定するには

使用クラス:flash.display.Sprite

Sprite.startDrag([中心にロック[, 境界]])
Sprite.stopDrag()
Sprite.dropTarget

Spriteオブジェクトのドラッグを開始するには、Sprite.startDrag()を使います。
中心にロックパラメータにtrueを指定するとドラッグ時にSpriteオブジェクトの中心がマウスカーソルに一致します。
境界パラメータにRectangleオブジェクトを指定するとその領域内の実にドラッグ範囲を制限できます。
Rectangleオブジェクトの座標はドラッグ対象となるSpriteオブジェクトの親表示オブジェクトのコンテナの座標系で指定します。
ドラッグを終了するにはSprite.stopDrag()を使います。
Sprite.dropTargetを使うと ドラッグ対象のSpriteオブジェクトの直下にある表示オブジェクトへの参照を取得できます。取得する表示オブジェクトは、入れ子構造の最も内側のものになるので注意が必要です。

//メインタイムラインのフレームアクション
var startX:Number = mcStar.x;
var startY:Number = mcStar.y;
mcStar.addEventListener(MouseEvent.MOUSE_DOWN, mcStarMouseDownHandler);

function mcStarMouseDownHandler(evt:MouseEvent):void {
   mcStar.startDrag();
   mcStar.addEventListener(MouseEvent.MOUSE_MOVE, mcStarMouseMoveHandler);
   stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUpHandler);
}

function mcStarMouseMoveHandler(evt:MouseEvent):void {
   evt.updateAfterEvent();
}

function stageMouseUpHandler(evt:MouseEvent):void {
   mcStar.stopDrag();
   mcStar.removeEventListener(MouseEvent.MOUSE_MOVE, mcStarMouseMoveHandler);
   stage.removeEventListener(MouseEvent.MOUSE_UP, stageMouseUpHandler);
   var goal:DisplayObject = mcStar.dropTarget;
   if (goal){
      if (goal.parent == mcGoal){
         mcStar.x = 239;
         mcStar.y = 138;
         return;
      }
   }
   mcStar.x = startX;
   mcStar.y = startY;
}

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得

<<<戻る

RIKO's Trial Page | Shirley's i-box | Shirley's little box