Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как отловить изменение координат мышки ? (http://www.flasher.ru/forum/showthread.php?t=142214)

t4arty 15.07.2010 16:00

как отловить изменение координат мышки ?
 
собственно сабж.

Задача: отловить координаты мышки в области stage, что бы потом можно было перемещать мувик с помощью мыши. (двигаешь мышь влево, мувик перемещается влево, вправо мышкой, мувик вправо, вверх - мувик вверх).

сохранение через переменные не помогает(либо я что-то не то делаю). Пробую с массивами, но что то пока никак ;(

Спасибо.

vinch 15.07.2010 17:05

Вопрос не понял, но на всякий случай: координаты мыши доступны по stage.mouseX и stage.mouseY ;)

Хемуль 15.07.2010 17:05

2 t4arty:
Хоть бы код показали...

t4arty 15.07.2010 17:12

Код AS3:

stage.addEventListener(MouseEvent.MOUSE_MOVE, m);
 
var a:int=0;
var b:int=0;
var xx:int,yy:int;
 
function m(e:MouseEvent) {
        if(mouseX < xx) { // pravo
                mouse.x = xpos[b+=1];
                if(b>xpos.length) {
                        b=0;
                        mouse.x=xpos[b];
                }
        }
        if(mouseX > xx) { //levo
                mouse.x = xpos[b-=1];
                if(b<=0) {
                        b=xpos.length;
                        mouse.x=xpos[b];
                }
        }
}

вот я сижу и думаю, как "поймать" различие в координате Х, что можно было передвигаться по массиву ;)

PHILOSOFF 15.07.2010 17:13

Цитата:

Сообщение от t4arty (Сообщение 922545)
собственно сабж.

Задача: отловить координаты мышки в области stage, что бы потом можно было перемещать мувик с помощью мыши. (двигаешь мышь влево, мувик перемещается влево, вправо мышкой, мувик вправо, вверх - мувик вверх).

перетаскиваемый_мувик.startDrag(); :)

petri 15.07.2010 17:51

А чем не устраивает EnterFrame? Ну или таймер? например
Код AS3:

private function enterFrameHandler(e:Event){
      targetMovieClip.x = stage.mouseX;
      targetMovieClip.y = stage.mouseY;
 
}

Ну или вариации на тему.

t4arty 15.07.2010 19:11

таймер и enterFrame - " не катит" :)
1. в принципе решается это все созданием некоторой точки, которая будет как бы разделителем, т.е
если координамы мышки по Х больше, чем эта точка, то движемся вправо и наоборот, но это не устраивает.

2. Есть массив с координатами по которым двигается клип(спрайт), вот можно их по мере их увеличения использовать для определения положения мышки %)

3. Использование тригонометрии ;) (в какой части "круга" знак появляется у Cos / sin / tg / ctg. Извиняюсь за бардак, давно этого не использовал.

petri 16.07.2010 14:19

Цитата:

Задача: отловить координаты мышки в области stage, что бы потом можно было перемещать мувик с помощью мыши. (двигаешь мышь влево, мувик перемещается влево, вправо мышкой, мувик вправо, вверх - мувик вверх).
Почему не катит, если отвечает поставленной задаче?

Я вовсе не настаиваю на этом решении, просто хочется понять =)

t4arty 16.07.2010 14:35

отлавливать изменение положений мыши надо в событии MOUSE_MOVE.

petri 16.07.2010 15:03

Вложений: 1
Окей, тогда что мешает делать жесткую привязку? т.е. то же самое что я написал только в onMouseMove? Нужно чтобы реакция "запаздывала"? Или еще какие-то требования? Вам в результате нужно что то такое?


Часовой пояс GMT +4, время: 12:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.