Просмотр полной версии : Отследить положение мыши, возможно?
Сделали нам баннер флешевый. Все как мы хотели кроме одного единственного трабла, который фирма которая делала баннер так и не смогла победить.
Опишу в чем трабл.
Наводя мышью на баннер происходят некие дейтствия. Уводя мышь с баннера нужно чтобы баннер возвращался в исходное состояние.
Для этого по всем краям баннера сделаны определенный поля в 10 пикселей, пересекая которые мышью баннер получает сигнал вернутся в исходное состояние. Проблема в том, что если мышь убрать от баннера быстро, эти поля не всегда успевают отследить что мышь прошла над ними. Баннер остается в последнем положении не возвращаясь в исходное состояние.
На вопрос, неужели нельзя сделать отслеживание находится ли мышь над баннером, нам ответили что такое невозможно.
Помогите плз как решить эту проблему. Фирма нам пообещала доделать баннер если мы намекнем как это решить.
Заранее огромное спасибо!
В AS3 добавлено событие MOUSE_LEAVE.
Нам нужно сохранить баннер в флеше 6 версии. АС3 позволит такое?
Нам нужно сохранить баннер в флеше 6 версии. АС3 позволит такое?
AS3 с 9-ой версии. Честно говоря, не понимаю, в чём смысл ориентироваться на совместимость с настолько устаревшим ПО, тем более что даже AS2 появился только в 7-ой версии (2003 год). Вам, конечно, виднее, чего хотеть, но посмотрите на всякий случай на эти цифры (http://www.adobe.com/products/player_census/flashplayer/version_penetration.html).
AS3 с 9-ой версии. Честно говоря, не понимаю, в чём смысл ориентироваться на совместимость с настолько устаревшим ПО, тем более что даже AS2 появился только в 7-ой версии (2003 год). Вам, конечно, виднее, чего хотеть, но посмотрите на всякий случай на эти цифры (http://www.adobe.com/products/player_census/flashplayer/version_penetration.html).
А можно поподробнее? Как его использовать?
Действительно, намекните этой фирме, что можно попробовать использовать MouseMove и повесить на эту функцию проверку на hitTest с координатами указателя мыши.
Проверка будет осуществляться непрерывно, и как только hitTest выдаст false, это можно использовать сигнал для возврата на исходное состояние.
Surus, суть в том, что событийная модель 6го плеера тут Вам не поможет, поскольку опрос мыши в браузере происходит слишком медленно.
Могу намекнуть, как можно улучшить:
Нужно смотреть не координаты мыши, а направление и скорость движения, если мышь перестает двигаться, то можно вычислить ее координаты, как если бы она продолжала движение с прежней скоростью и направлением. Если расчитываемая точка находится за приделами сцены, то нужно сделать небольшую паузу - подождать не появяться ли новые значения координат мыша и если нет, то принять решение, что мышь покинула сцену. Ошибки тоже будут, но их будет меньше.
Я бы также рекомендовал для воспитания торопыжек делать указатель мыши невидимым в клипе и заменять его к примеру анимированным клипом со шлейфом, который будет появляться исчезать в зависимости от скорости перемещения.
Действительно, намекните этой фирме, что можно попробовать использовать MouseMove и повесить на эту функцию проверку на hitTest с координатами указателя мыши.
Проверка будет осуществляться непрерывно, и как только hitTest выдаст false, это можно использовать сигнал для возврата на исходное состояние.
И когда же он false выдаст?
С mouse leave сделать и не париться.
aksios, овчинка выделки не стоит в данном случае.
udaaff, чисто из спортивного интереса.
UPD: Кстати да, MOUSE_LEAVE рулит в АС3.
И когда же он false выдаст?
Верно, не получится, я поторопился.
И что же делать? На АС3 переходить по многим причинам не будут, нужно это решить на АС2.
Смотрите тогда сторону JS - это ваше спасение.
Напишите на JS функцию, которая бы отслеживала положение мыши так, что когда мышь не находится на блоке с флешкой, эта функция бы возвращала бы флешку в исходное состояние.
Для этого также нужно будет со cтороны флеша задействовать метод ExternalInterface.addCallback, который бы обеспечил флешке понимание, что к ней обращаются извне, из JavaScript.
Резюме:
Либо - AS3, либо - JS + ExternalInterface.
Кстати, нужную функцию JS можно попробовать сгенерировать прямо изнутри флешки.
Можно сделать прозрачную штуку, привязать ее к курсору и отслеживать координаты
Можно сделать прозрачную штуку, привязать ее к курсору и отслеживать координаты
Это вы про JavaScript или про флеш?
Можно сделать прозрачную штуку, привязать ее к курсору и отслеживать координаты
Какой смысл привязывать что-то к курсору, если координаты курсора есть и так.
Вот только они не отслеживаются за пределами ролика.
Кроме onReleaseOutside за пределами флешки, словить, по моему, ничего нельзя.
Это вы про JavaScript или про флеш?
скорее всего про флеш
Жень Шень
27.08.2009, 11:06
Привет!
Не вдаваясь в подробности из-за дефицита времени прикладываю исходник (с этого форума, кажется), в котором идет речь о поднятых тут проблемах. Если поможет, то буду рад.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.