GlobalMouse
Во времена AS2 мышиные события типа onMouseUp, onMouseDown, onMouseWheel, onMouseMove были глобальными, с приходом AS3 эти события теперь жестко привязаны к InteractiveObject. Не желая с этим мириться, я написал класс GlobalMouse, позволяющий любому объекту получать данные события, а также захватывать скролл мыши от браузера (если скролл мыши не захвачен, а так и происходит в AS3, то можно столкнуться с такой ситуацией, что при прокручивании ComboBox прокручивается ещё и вся страница с флешкой).
.
UPDATE: Причесанный класс только для захвата мыши.
16 comments
16 Comments so far
Leave a reply
[...] не расположенными на сцене. Посмотрев на класс GlobalMouse Дениса Коляко, я не мог поверить, что всё так сложно. И [...]
Изврат =)
Но генерации AS1/2 сриптов в рантайме можно поискать более лучшее применение.
Это — одно из них, особенно, когда нужен Mouse из AS2.
Пытался, но так и не смог разобраться, в чём главная идея реализации? Буквально в двух словах если можно.
Главная идея:
0. Подписываться на глобальные события мыши, как в AS2, везде и всюду, в любом классе;
1. Не иметь привязки ни к какому InteractiveObject, необходимости наследования, отрисовки чего-либо;
2. Захват скролла мыши от браузера (в AS3 скролл продолжает работать в самом браузере).
Если же вопрос относительно самой реализации, то там просто генерируется ролик с AS2-кодом, загружается в Loader, затем с роликом устанавливается LocalConnection. Ролик высылает соответствующие оповещения через LocalConnection. Для того, чтобы ролик работал сразу в нескольких окнах, при инициализации создается уникальное имя соединения. Как-то так…
Да, я за реализацию спрашивал, спасибо.
Попытаюсь теперь с вашими подсказками врубиться в код
а зачем там Loader? смотрю как баран на код и не доходит никак… :/
Пардон, плохо читал комменты, дошло.
“43575309DC020000789C9590C14…”;
это и есть загружаемый as2 ролик? а что в нем за код?
Ну да, он самыый. А это имеет значение, что там внутри?
да, крайне интересно
Просто создается LocalConnection и передеача событий мыши через него.
[...] и страница. Решение было найдено по этому адресу http://etcs.ru/blog/as3/globalmouse/ а его описание — по этому адресу [...]
[...] Более подробно почитать и взять на вооружение этого решения можно здесь. [...]
Самая нужная вещь. Пасиб большое. Очень помогло.
[...] в фокусе или нет. Достаточно давно я опубликовал класс GlobalMouse, он решал данную проблему, но в целом был неудобен [...]
душевное спасибо.