Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обработка событий между главной и подгружаемой флэшкой (http://www.flasher.ru/forum/showthread.php?t=113738)

EugeneLitvinov 07.07.2008 17:16

Обработка событий между главной и подгружаемой флэшкой
 
Есть два swf-файла, первый загружает второй. Возможно ли, прописав во второй флэшке
Код:

dispatchEvent(new Event("DOWNLOAD_COMPLETE"));
отловить его в первой по средством
Код:

addEventListener("DOWNLOAD_COMPLETE", eventDownloadComplete);
Я так попробовал, у меня не получилось :(
В AS2 для взаимодейсвия подгружаемых флэшек использовал _global-функции, на что их заменить в AS3, подскажите пожалуйста?

Greenish 07.07.2008 17:19

не уверен но думаю надо так:
dispatchEvent(new Event("DOWNLOAD_COMPLETE",true));

EugeneLitvinov 07.07.2008 17:31

Это включает фазу пузырька, на сколько я знаю...
Не, решение пришло неожиданно :), просто нужно событие вешать на stage:
Код:

stage.dispatchEvent(new Event("DOWNLOAD_COMPLETE", true));
и
Код:

stage.addEventListener("DOWNLOAD_COMPLETE", eventDownloadComplete);
Видимо, все подргужаемые swf-ки ссылаются на один stage

Greenish 07.07.2008 17:36

ну а пузырьки то чем плохи? у меня так работает с пузырями...

EugeneLitvinov 07.07.2008 18:18

мдя, действительно работает, и stage никакой не нужен тогда, спасибо :)

Greenish 07.07.2008 18:31

да не за что

EugeneLitvinov 07.07.2008 20:17

Вот блин, что-то я натупил капитально... события ловились, пока не оказалось, что и диспатчер и листенер я прописал в одном swf-файле :)))))
Умные люди говорят: нужно юзать интерфейсы - видать события между разными флэшками все же не передаются :(

Greenish 07.07.2008 20:23

а причем тут интерфейсы? передаются. проверял.
это в подгружаемой флешке:
Код:

dispatchEvent(new Event("onStartFire", true));
это в главной:
Код:

addEventListener("onStartFire", onStartFire);
и все работает.

EugeneLitvinov 07.07.2008 20:38

хм, мистика, у меня тоже заработало, но только если и диспатчер и листенер вешать на stage - наверное это из-за того, что в первой флэшке класс у меня подвешен на Document class, а в подгружаемой функции класс висит на MovieClip'е... может у них как бы области видимости событий не пересекаются, хотя бред какой-то :))) Но, в любом случае, еще раз спасибо :)

Greenish 07.07.2008 20:53

Вложений: 1
нет.. на стейдж не надо вешать я думаю.. пузыри для того и нужны чтоб от предка к родителю подниматься.
ловите исходник. в clip.fla код в кадре (не охота было писать класс). там через несколько фреймов он диспатчит а главный ловит это.
Вложение 19922


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

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