На основании того, что я интерпретировал ваш вопрос как: "как я могу задать границы перетаскиваемого элемента?".
startDrag()
имеет параметр, который принимает Rectangle
(flash.geom.Rectangle
), который будет действовать в качестве границы, куда вы можете перетащить что-то.
например.
var rect:Rectangle = new Rectangle(0,0,100,100);
startDrag(false, rect);
Вот как я бы сделал объект, который вы перетаскиваете и ограничиваете:
package
{
import flash.display.MovieClip;
import flash.geom.Rectangle;
import flash.events.MouseEvent;
public class DragableItem extends MovieClip
{
// vars
private var _boundaries:Rectangle;
/**
* Constructor
*/
public function DragableItem()
{
// define boundaries
// left, top, right, bottom
_boundaries = new Rectangle(30,30,200,200);
addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown);
}
/**
* MOUSE_DOWN
*/
private function _mouseDown(e:MouseEvent):void
{
startDrag(false, _boundaries);
addEventListener(MouseEvent.MOUSE_UP, _stopDrag);
addEventListener(MouseEvent.MOUSE_OUT, _stopDrag);
}
/**
* MOUSE_UP
*/
private function _stopDrag(e:MouseEvent):void
{
stopDrag();
removeEventListener(MouseEvent.MOUSE_UP, _stopDrag);
removeEventListener(MouseEvent.MOUSE_OUT, _stopDrag);
}
}
}
Быстрый тест:
var drg:DragableItem = new DragableItem();
drg.graphics.beginFill(0);
drg.graphics.drawRect(0,0,60,60);
drg.graphics.endFill();
addChild(drg);