Форум 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)
-   -   Что целесообразнее использовать: onRollOver или onMouseMove? (http://www.flasher.ru/forum/showthread.php?t=97462)

Torero 21.06.2007 16:31

Что целесообразнее использовать: onRollOver или onMouseMove?
 
Для запуска событий, зависящих от положения мыши, целесообразнее использовать onRollOver на штук 20 невидимых мувиклипов, или постоянно просчитывать положение курсора через onMouseMove? (просчет довольно приличный т.к.положение 20 вышеупомянутых невидимых мувиков при каждом запуске разное). Мувиков может быть и 70 и 100..

DJ_ManiaC 21.06.2007 17:34

А действие по каждому положению тоже разное или одно и тоже?
Если их (действий) не так много, то я думаю можно через массив замутить. Допустим в одном массиве прописываешь мувики при наведении на которые выполняется действие "А", а в другом мувики при наведении на которые происходит действие "В". И потом функция обрабатывает на какой мувик наведена мышь и выполняет нужное действие.

Torero 21.06.2007 17:36

разное

wvxvw 21.06.2007 17:54

лучше маусМув, онРолловер может глючить (если очень быстро мышой водить, событие может не произойти).

DJ_ManiaC 21.06.2007 17:59

Цитата:

Сообщение от wvxvw
лучше маусМув, онРолловер может глючить (если очень быстро мышой водить, событие может не произойти).

Ты прав... Такое наблюдается регулярно :) И ещё onRelease не срабатывает когда уводишь мышь с кнопки приходится onReleaseOutside прописывать

Х.З. ИМХО. Если событие разное, то тогда делай типа компонента кнопки и вводи в его переменных какую процедуру по наведению на объект нужно запускать. Потом внутри по наведению ставишь исполнение процедуры которую указал в переменных и в Main Frame прописываешь все процедуры которые должны выполнятся.

iNils 22.06.2007 01:20

Цитата:

Сообщение от wvxvw
лучше маусМув, онРолловер может глючить (если очень быстро мышой водить, событие может не произойти).

Это не глюк. Курсор двигает не аналогово, а дискретно, поэтому два положения могут окадать по разные стороны объекты и события соответственно не вызываются.

Torero 22.06.2007 02:36

Вопрос сюда-же.. почему с нажатой кнопкой мыши ни RollOver ни RollOut не срабатывают? как этого избежать?

Kikasso 22.06.2007 02:41

Потому что другие события - onDragOver, onDragOut

etc 22.06.2007 02:42

Для этого созданы onDragOver и onDragOut соответственно.

Torero 22.06.2007 03:35

это что-ж получается: для того чтобы создать нормальное пользовательское нечто, я должен прописать 4 события вместо 2х? Это был последний гвоздь в крышку onRollOver(Out). Буду onMouseMove использовать.
Всем спасибо. Топик закрыт.

Kikasso 22.06.2007 04:57

onMouseMove работает тоже дискретно.
Можно писать
Код:

btn.onRollOut = btn.onDragOut = function(){}

iNils 22.06.2007 14:10

Цитата:

Сообщение от Kikasso
onMouseMove работает тоже дискретно.

Конечно. Только он в любом случаи будет вызван, в отличии он onRollOver

Kikasso 22.06.2007 14:37

Цитата:

Сообщение от iNils
Конечно. Только он в любом случаи будет вызван, в отличии он onRollOver

Вызван конечно будет, только если курсор кнопку проскочит - ничего нам его вызов не даст, кроме двадцати проверок. А если не проскочит, то и onRollOver сработает.
А вот с деактивацией кнопок все сложнее. Некоторые нехорошие пользователи нажимают alt+TAB и мышкой проводят через другое окно, к этот момент и onMouseMove не срабатывает, и hitTest по интервалу бессилен. А onRollOut срабатывает.

wvxvw 24.06.2007 20:01

Ну можно еще извращенным способом по интервалу проверять, а не могла ли мыша пройти над заданным полем... но, как по мне, лучше уж пусть глючит 1 раз из 100, чем писать обработчик, который не пригодится в 99 случаях из 100 %)

Kikasso 25.06.2007 15:08

Цитата:

Сообщение от wvxvw
Ну можно еще извращенным способом по интервалу проверять, а не могла ли мыша пройти над заданным полем...

Вот как раз alt+TAB, через другое окно, и hitTest в пролете.

wvxvw 26.06.2007 14:50

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


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

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