![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2010
Сообщений: 21
|
Добрый день снова.
Опять у меня проблема с которой не могу разобраться... В общем пока задача совсем простая - нужно чтобы MovieClip всегда находился под курсором мышки. Ну и еще нужно чтобы событие было в самом классе мувика. Если коротко, то сделал вот так И получил очень странный эфект - мувик скачет через кадр то в точку 0;0 то куда-то в район курсора... Вроде уже делал такое вот слежение за курсором и все было хорошо, а что в этот раз я совсем не понимаю.. Весь исходник Значит вот основной класс package { import flash.display.MovieClip; import Point_mc; public class Main extends MovieClip { public function Main () { var point:Point_mc = new Point_mc(); point.x = point.y = 100; addChild(point); } } } package { import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.ui.Mouse; public class Point_mc extends MovieClip { public var _click:Boolean = false; public function Point_mc () { this.addEventListener(Event.ENTER_FRAME,point_mover); this.addEventListener(MouseEvent.MOUSE_DOWN,click_down); this.addEventListener(MouseEvent.MOUSE_UP,click_up); } public function point_mover(e:Event):void { if (_click){ this.x = mouseX; this.y = mouseY; } } public function click_down(e:MouseEvent):void { _click = true; Mouse.hide(); } public function click_up(e:MouseEvent):void { _click = false; Mouse.show(); } } } |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 127
|
Во-первых, вы не с той стороны подошли к решению задачи - вы повесили слушатель на ENTER_FRAME, что делать вовсе не обязательно.
Повесьте слушатель на MOUSE_MOVE, и добавьте в e.updateAfterEvent, например: obj.addEventListener(MouseEvent.MOUSE_DOWN,pickUp); obj.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{ obj.x = stage.mouseX; obj.y = stage.mouseY; e.updateAfterEvent(); } |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 21
|
Тут согласен, сейчас полазил по форуму и уже заметил что так можно было сделать
но проблему это не решило ( Кстате вот можно посмотреть на результат skeleton.rar |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 33
|
Небось используете mouseX вместо stage.mouseX, вот и получается фигня (mouseX и mouseY хранят координаты мыши относительно DisplayObject'а, а не сцены)
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 21
|
Уууу спасибо ))))))
|
|
|||||
|
Регистрация: Sep 2009
Сообщений: 127
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|