Форум 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=98388)

tik_webmaster 12.07.2007 14:42

Как уловить быстрые движения мыши?
 
Как уловить быстрые движения мыши?

Например есть мувиклип и должно выполняться какое либо действие onMouseOver.
При достаточно быстрых движениях мышью действия не выполняются.

Убедиться в этом можно, привязав обработчик на действия мыши к тонкой линии-мувиклипу.
Чем тоньше линия, тем более быстрые движения мыши не замечаются.

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

Помогите, пожалуйста.

iNils 12.07.2007 15:02

Нет события onMouseOver.

Ведьмак 12.07.2007 15:05

может FPS большой поставить ? :))

iNils 12.07.2007 15:07

Мышью управляет система. Можно лишь повесить на событие onMouseMove hitTest

tik_webmaster 12.07.2007 15:17

большой FPS не помогает

chingachgoog 12.07.2007 15:23

Подозреваю, что целиком избавиться не удастся. Дискретное никогда не станет аналоговым.
Надо пройтись поиском: тут где-то было, какие обработчики более быстрые, а какие более медленные.

Wolsh 12.07.2007 15:30

А что, нельзя проблему решить по-другому? Через hitArea например. Не представляю, что-то такое тонкое... - и быстро движется мышь... - значит вокруг нет интерактивных объектов (во всяком случае при быстром движении мыши Вы бы все равно ни в кого точно не попали), и можно сделать клип-хитарею, шире вашей видимой линии пиксов на 30, поставить ему _альфа ноль и всё.

iNils 12.07.2007 16:23

> _альфа ноль
это не гуд, надо (если это не кнопка которая Button) сделать клип, который будет выполнть роль области реагирования. Потом присовить эту область с помощью hitArea, а само область спрятать через _visible = false;

Wolsh 12.07.2007 22:35

Ну да, так легче аппарату :)

silin 13.07.2007 00:46

а можно наоборот: оставить линию как есть, а за мышью пустить невидимый мувик, хиттест которого с линией и отслеживать.. чем он больше тем надежнее срабатывание, но больше ошибка во времени/координате, подбирать надо..
Код:

mouseMC.startDrag(true);//мувик для 'утолщения' мыши
mouseMC._visible=false;
var prevHit=false;//чтобы избежать многократного срабатывания
function onMouseMove(){
        var hit=lineMC.hitTest(mouseMC);
        if(hit && !prevHit) trace("over");
        prevHit=hit;
}



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

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