Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Простой код почему-то не работает. Помогите пожалуйста
Flash Zone Forum > Macromedia Flash > ActionScript
MakTpaxep
import flash.events.MouseEvent;

Btn.addEventListener(MouseEvent.MOUSE_DOWN, pickup);
Btn.addEventListener(MouseEvent.MOUSE_UP, place);

function pickup(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, changeXY);
}

function place(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, changeXY);
}

function changeXY (e:MouseEvent):void
{
Btn.x= mouseX;
Btn.y= mouseY;
e.updateAfterEvent();
}


Тот самый объект Btn по клику мыши цепляется и никогда уже не отпускает мышь. А хотелось бы чтобы отпускал.
MakTpaxep
Всё разобрался - мышь просто привязывалась как-бы к левому верхнему углу, когда начиналось движение.
Btn.x= mouseX-Btn.width/2;
Btn.y= mouseY-Btn.height/2;
Вот это заработало. Так в самом деле довольно красиво перетаскивает.

Подскажите пожалуйста как сделать чтобы мышь оставалась в той же точке на объекте когда начинаешь тащить
tiHo
попробуй вместо ф-ции changeXY использовать стандартную startDrag()

Как простой вариант:

Код
function drag(event:Event):void
{
    Btn.startDrag();
}

function drop(event:Event):void
{
    Btn.stopDrag();
}

Btn.addEventListener(MouseEvent.MOUSE_DOWN, drag);
Btn.addEventListener(MouseEvent.MOUSE_UP, drop);
Русская версия IP.Board © 2001-2010 IPS, Inc.