#actionscript-3
#actionscript-3
Вопрос:
Я использую следующий код для перетаскивания объекта на сцену. Я использую прямоугольник, чтобы ограничить перемещение объекта только осью x. Мне нужно, чтобы мышь перестала перетаскивать, когда она находится за пределами объекта. Режим buttonmode отключается, но мышь по-прежнему перетаскивает объект при перемещении мыши с нажатой кнопкой мыши. Вот код, который я использую:
var rectangle:Rectangle = new Rectangle(-1400, 600, 4500, 0);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseStartDrag);
function mouseStartDrag(motion:MouseEvent):void
{
strip_mc.startDrag(false, rectangle);
}
stage.addEventListener(MouseEvent.MOUSE_UP, mouseStopDrag);
function mouseStopDrag(motion:MouseEvent):void
{
strip_mc.stopDrag();
}
strip_mc.buttonMode = true;
Thanks for any help
Ответ №1:
Вы можете определить, находится ли мышь внутри прямоугольника, и если это не так, вы можете вызвать strip_mc.stopDrag();
Сначала создайте пустой видеоролик и добавьте к нему прямоугольник.
var m:MovieClip = new MovieClip();
m.addChild(rectangle);
stage.addChild(m);
Затем сделайте что-то вроде:
m.addEventListener(MouseEvent.MOUSE_OUT, mouseStopDrag);
или
m.addEventListener(MouseEvent.ROLL_OUT, mouseStopDrag);
Затем прослушиватель событий вызовет mouseStopDrag
уже созданное, что остановит перетаскивание.
Комментарии:
1. Я получаю следующее сообщение «1061: вызов, возможно, неопределенного метода addEventListener через ссылку со статическим типом flash.geom:Rectangle .
2. @Brian Berry Вы могли бы добавить прямоугольник в пустой видеоролик, а затем ссылаться на него. — Я обновил свой ответ.