Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Переход на следующий кадр при быстром перемещении мыши (http://www.flasher.ru/forum/showthread.php?t=140429)

Зубило 28.05.2010 20:38

Переход на следующий кадр при быстром перемещении мыши
 
Здравствуйте!:bye:
Скажите пожалуйста как можно организовать переход на следующий кадр в мувиклипе при резком движении мыши,тоесть непросто пошевелил мышью и сразу происходят бешеные переходы,а так чтобы при довольно быстром перемещении мыши!:confused:
:quiet:и я даже предпологаю кто мне поможет!:drinks:
Зарание всем спасибо!:)

rainbowrussia 28.05.2010 21:22

setInterval, сравнивать длину перемещения мыши за этот интервал (сумма квадратов перемещения по двум осям, корень извлекать не обязательно) с заданным значением, gotoAndPlay, если больше, записывать новые текущие значения координат мыши.

Зубило 28.05.2010 21:25

а поподробнее... :)

deman455 28.05.2010 21:29

Код AS1/AS2:

onFrame(1){
oldx=_xmouse;
}
onFrame(2){
newx=oldx-_xmouse //(смотря в какую сторону хочешь)
if (newx>200) <следующий кадр>
this.gotoAndPlay(2);
}

Пример тупой, и я не уверн что получится... Но попробовать стоит.

Зубило 28.05.2010 21:33

Здесь нужен спецназ AS2 :)
 
mooncar помоги!:D

rainbowrussia 28.05.2010 22:08

Цитата:

Сообщение от Зубило (Сообщение 911650)
а поподробнее... :)

Тогда пишите открыто - не "как огранизовать", а "напишите скрипт" :)
Если никто не поможет - позже напишу.

gldrawworld 28.05.2010 22:39

омг …
все на много проще …*

Код AS3:

_root.onMouseMove = function()
{
 
        if (_xmouse-old>100)
        {
                trace("message")
        }
        old = _xmouse;
}

при таком коде резкое движение по оси X в право даст нужный результат …*

mooncar 28.05.2010 22:47

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

gldrawworld 28.05.2010 22:54

setInterval вобще не оправдан для этой задачи …*приведенный мной пример отлично справляется с задачей, принцип простой

mouseMove срабатывает при движении мыши, так вот, окончание движения сопровождается вызовом хендлера, как и начало …*поэтому достаточно просто взять старое значение, которое сохранили при первом заходе и новое значение, ну и отнять само собой от нового старое и если дельта больше нужной, вызывать свой код …

rainbowrussia 28.05.2010 22:59

Солгасен, можно и без setInterval, только я все-же использовал бы обе координаты.


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

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