![]() |
Обработка событий между главной и подгружаемой флэшкой
Есть два swf-файла, первый загружает второй. Возможно ли, прописав во второй флэшке
Код:
dispatchEvent(new Event("DOWNLOAD_COMPLETE"));Код:
addEventListener("DOWNLOAD_COMPLETE", eventDownloadComplete);В AS2 для взаимодейсвия подгружаемых флэшек использовал _global-функции, на что их заменить в AS3, подскажите пожалуйста? |
не уверен но думаю надо так:
dispatchEvent(new Event("DOWNLOAD_COMPLETE",true)); |
Это включает фазу пузырька, на сколько я знаю...
Не, решение пришло неожиданно :), просто нужно событие вешать на stage: Код:
stage.dispatchEvent(new Event("DOWNLOAD_COMPLETE", true));Код:
stage.addEventListener("DOWNLOAD_COMPLETE", eventDownloadComplete); |
ну а пузырьки то чем плохи? у меня так работает с пузырями...
|
мдя, действительно работает, и stage никакой не нужен тогда, спасибо :)
|
да не за что
|
Вот блин, что-то я натупил капитально... события ловились, пока не оказалось, что и диспатчер и листенер я прописал в одном swf-файле :)))))
Умные люди говорят: нужно юзать интерфейсы - видать события между разными флэшками все же не передаются :( |
а причем тут интерфейсы? передаются. проверял.
это в подгружаемой флешке: Код:
dispatchEvent(new Event("onStartFire", true));Код:
addEventListener("onStartFire", onStartFire); |
хм, мистика, у меня тоже заработало, но только если и диспатчер и листенер вешать на stage - наверное это из-за того, что в первой флэшке класс у меня подвешен на Document class, а в подгружаемой функции класс висит на MovieClip'е... может у них как бы области видимости событий не пересекаются, хотя бред какой-то :))) Но, в любом случае, еще раз спасибо :)
|
Вложений: 1
нет.. на стейдж не надо вешать я думаю.. пузыри для того и нужны чтоб от предка к родителю подниматься.
ловите исходник. в clip.fla код в кадре (не охота было писать класс). там через несколько фреймов он диспатчит а главный ловит это. Вложение 19922 |
а интерфейсы совсем другая тема для разговора. если надо вызывать чтото в подгружаемой флешке то они тут нужны. но рассылка событий - это другое.
|
Внимательно изучаем мануал: sharedEvents
|
о. спасибо. чето не юзал никогда..
|
Greenish спасибо за пример - я понял, почему у меня события шли только через stage, это потому, что я loader.content аттачил вот так:
Код:
stage.addChildAt(loader.content, 0);Код:
addChildAt(loader.content, 0); |
да не за что :) wvxvw кстати хороший способ тоже подсказал
|
Да, wvxvw тоже спасибо, просто я второй пост не успел написать - ушел на обед :). sharedEvents почитал, как я понял, отличие у них лишь в возможности "общения" флэшек с разных доменов и вопреки безопасноси... у меня же все флэшки лежат на одном ресурсе, так что простые события меня полностью устраивают :)
|
| Часовой пояс GMT +4, время: 05:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.