PDA

Просмотр полной версии : [ Переименовано ] Отслеживание момента, когда курсор покинул ролик


Elodreid
07.01.2006, 05:13
Делаю сайт, вверх флеш всегда, а низ бывает и html страница, вот в чем вопрос:

Как сделать, что бы если мышка уходит за границу флеш kursor_mc становился _visible = false?

Antares
07.01.2006, 05:38
Чаще всего кладут сверху кнопку, но самым беспроигрышным решением будет в JavaScript отслеживать координаты курсора и когда он не над роликом -- давать команду через SetVariable.

Проблема состоит в том, что когда курсор покидает Сцену, координаты _xmouse, _ymouse остаются теми, что были в последний момент, когда курсор над ней был.

Чтобы не использовать лишний раз жрущий (много или мало -- но жрущий) ресурсы onEnterFrame, делаем объект со свойством, которое вешается динамически, а значит, мы можем написать свой сеттер для этого объекта (как вариант -- делать класс, у которого уже есть сеттер, но тебе про классы думать рано).

Делается это примерно так:

_root.set__xmouse = function(val)
{
"Новое значение X: " + val
}

_root.get__xmouse = function(val){return null}

_root.set__ymouse = function(val)
{
trace("Новое значение Y: " + val);
}

_root.get__ymouse = function(val){return null}

_root.addProperty("__xmouse", _root.get__xmouse, _root.set__xmouse);
_root.addProperty("__ymouse", _root.get__ymouse, _root.set__ymouse);


Руту динамически вешаются свойства __xmouse, __ymouse. Теперь мы можем изменять их с помощью SetVariable и у нас отработают соответствующие функции set__ymouse, set__xmouse.

Getter/Setter -- функции, вызываемые при обращении к свойству "на чтение" (типа, var a = obj.property взовет getter для property) и "на изменение" (obj.property = "foo" вызовет setter для property).

Чтобы ты не сошел с ума от обилия новой информации предлагаю 2 варианта:

1. Почитать про геттеры и сеттеры, JS код завтра напишу (уже засыпаю, Антаресы тоже иногда спят).
2. Если согласишься почитать по-английски, могу дать ссылки на туторы для первого метода с кнопкой, но он, как я говорил, не идеален.

Elodreid
07.01.2006, 17:32
Ну я сейчас и сделал, что-то похожее на кнопку, только АСом :)
Просто координатами (по 5px взял), но если очень резко провести она не всегда в эти 5 пх попадает, а больше будет не красиво :-\

А вот с JS интересней, спасибо попробую как с катка приду :D

Antares
07.01.2006, 17:38
Ну так вот с JS способ беспроигрышный

ravenco
07.01.2006, 17:59
или вот готовый исходник
лови (ftp://bukhara.gov.uz/flash/js_toFlash_mouseCoord.zip)

Antares
08.01.2006, 03:31
Не нравится -- не ешь. У тебя есть еще один шанс испытать мое терпение. Второе нарушение за 3 прочитанных мною треда.

Elodreid
08.01.2006, 06:11
ravenco, спасибо буду пытаться разобраться ;)
Antares, ай м сорри