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

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

или вот готовый исходник
лови

Antares 08.01.2006 03:31

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

Elodreid 08.01.2006 06:11

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


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

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