При написании программы ActionScript 3 я пытаюсь сделать так, чтобы я мог перетаскивать объект из одного места в другое после выполнения некоторых других действий. Беда в том, что я могу перетащить только отлично, но, видимо, я не могу перестать таскать, даже с слушателем, чтобы остановить. Я не могу понять, почему это происходит. Соответствующая часть моего кода выглядит следующим образом:Drag не останавливается с ActionScript 3
public function setToDragAndDrop(){
this.graphic.removeEventListener(MouseEvent.CLICK, rotate);
this.graphic.addEventListener(MouseEvent.MOUSE_DOWN, drag);
this.graphic.addEventListener(MouseEvent.MOUSE_UP, endDrag);
}
private function drag(e:MouseEvent):void{
trace("Dragging...");
this.graphic.startDrag(true);
trace(this.graphic.hasEventListener(MouseEvent.MOUSE_UP)); //Returns true
}
private function endDrag(e:MouseEvent):void{
trace("Stopped dragging.");
this.graphic.stopDrag();
}
я не получаю «Остановлено перетаскивания» линии в моем выходе, поэтому endDrag MouseEvent никогда не вызывался, даже если она существует (как след доказывает) , Таким образом, вместо того, движется ли мышь вверх или вниз, она продолжает перетаскиваться. Я обнаружил, что если я нажму на другой объект с перетаскиванием, тот начнет перетаскивать.
Я сбит с толку. Любая помощь будет принята с благодарностью!
рад, что ты справился. – mpm
Как правило, всегда лучше рисовать фигуры, чтобы сохранить 'x' и' y' в 0 и вместо этого устанавливать 'x' и' y' в DisplayObject. Единственный раз, когда вы захотите установить 'x' и' y' во время рисования, требуется, чтобы вы смещали точку регистрации фигуры. Просто полезный совет. – redhotvengeance