PDA

Просмотр полной версии : Определение координат мыши из класса


dima_s
10.05.2010, 22:56
Приветствую всех.
Недавно начал изучать AS 3
Решил попробовать написать класс для перетаскивания muvieclip без использования функций startdrag и stopdrag. Столкнулся со следующей проблемой класс определяет координаты мыши только над мувиклипом а не над экраном. Прошу вашей помощи.

Вот код

package myas
{
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class DragClip extends MovieClip
{
public function DragClip()
{
this.addEventListener(MouseEvent.MOUSE_MOVE, changeXY);
}

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


}
}

КорДум
10.05.2010, 23:05
stage.mouseX
stage.mouseY

nOobCrafter
10.05.2010, 23:13
только надо дождаться тчо бы у вас появился стейдж, или передать его по ссылке)

dima_s
10.05.2010, 23:23
Исправил. Теперь координаты определяются правильно. Но код по прежнему работает не так как задумано.

КорДум
10.05.2010, 23:29
Что не так? Я так понял, вы делаете вот так:
нажал на клип, стартанул слушатель MOUSE_MOVE. Отпустил кнопку мыши - слушательно удалился. Всего три слушателя. Так?

dima_s
10.05.2010, 23:38
Просто слушатель воспринимает события над клипом, а не над экраном. Как исправить?

udaaff
10.05.2010, 23:39
MOUSE_MOVE не глобальное событие. Клипу своему задайте mouseEnabled = false. А на MOUSE_MOVE stage подпишите.

dima_s
10.05.2010, 23:45
Все исправил. Спасибо за помощь.
И еще один вопрос.
Как из этого же класса курсор мыши убрать?

udaaff
10.05.2010, 23:46
Mouse.hide()

dima_s
10.05.2010, 23:58
Все работает отлично. Большое спасибо.