Выход мыши Flash actionscript 3

#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 Вы могли бы добавить прямоугольник в пустой видеоролик, а затем ссылаться на него. — Я обновил свой ответ.