![]() |
AIR mobile, внешний swf и события от мыши
Добрый день форучане!
Столкнулся с очень непонятной ситуацией. Создаю проект AIR-mobile, в нём простой загрузчик внешней swf (без кода, просто один клип с шейпом в нём), указываю контекст, всё как положено. Файл пробовал грузить и с диска, локально и с сайта и из локального хранилища приложения (app-storage). Всё загружается, вешаю события от мыши на загруженный клип, на сцену и на созданный программно спрайт. И вот тут начинаются странности - события от мыши не поднимаются по стэку объектов, т.е если кликаем по спрайту - события получает только он, но не клип и не сцена, если по клипу - то только он и не сцена. Переношу ровно этот же код в приложение AIR-flashplayer и события работают как положено. Единственное отличие тут - вызов Security.allowDomain("*"), который для mobile-версии конечно не работает. Что это? Баг Adobe? Вот код данного примера: Код AS3:
|
Ну так на мобилах же Touch а не мышь. Видимо там полноценной поддержки мыши вообще не предустмотрено. Тач события работают как надо
|
Вообще Adobe советует использовать именно мышиные события, если нет особой необходимости.
А Touch вообще что-то не работает, может потому что на эмуляторе тестируем, а на устройстве будут? В любом случае, тут явно дело в Security, если тот же Sprite из примера приаттачить не к загруженному клипу, а прямо к stage, то события через Sprite до stage доходят. Т.е. загруженный клип таким образом изолируется что ли? Добавлено через 19 минут Попробовали на устройстве с Touch'ами - та же история, события не всплывают. |
Соберите минимальный тестовый пример воспроизводящий проблему, мне даже интересно стало, разрабатываю под мобилы и никогда не замечал отличий MouseEvent на них от обычного плеера.
|
Вложений: 1
Вот тестовый проект для FlashBuilder.
Собственно проблему мы решили, вот тут описан обходной хак: https://code.google.com/p/maashaack/...licationDomain В AIR действительно есть какие-то не очень внятные ограничения на скачиваемые swf. Всё что нужно сделать, так это загрузить нужную нам swf обычным способом через Loader.load, а после эти загруженные данные загрузить ещё раз, но через Loader.loadBytes, который игнорирует Security-ограничения. |
| Часовой пояс GMT +4, время: 17:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.