![]() |
Обращение к родительскому SWF
Здравствуйте, подскажите, пожалуйста, как из дочернего SWF можно обратиться к переменным,классам и функциям родительского SWF?
Коротко: есть контейнер, куда с помощью Loader() подгружается SFW, которая должна получить данные у родителя(контейнера) Спасибо |
Сделайте публичный метод в руте загружаемого и вызовите из загрузчика, передав необходимые данные.
|
(Ну не пропадать же написанному)
1) Можно через свойство parent, но это моветон. 2) Когда заканчивается загрузка SWF (по событию Event.COMPLETE) можно привязать Loader.content к переменной родительского контейнера, приведя content или к типу главного класса загружаемой swf или к MovieClip (если главный класс унаследован от него). Далее можно в какую-нибудь функцию init(host:MovieClip), описанную в загружаемой флешке, передать ссылку на контейнер и узнавать через нее необходимую информацию. 3) Совсем правильным подходом будет организация взаимодействия родителя с ребенком посредством событий. Впрочем, все зависит от постановки задачи. Простая схема подобного взаимодействия: у ребенка есть методы, с помощью которых родитель может отдавать ему какие-нибудь данные. Родитель, загрузив ребенка, подписывается на прослушку событий CustomEvent.GIVE_ME_DATA, исходящих от ребенка. Ребенок, когда ему что-нибудь нужно делает dispathEvent(new CustomEvent(CustomEvent.GIVE_ME_DATA)), родитель это дело слышит и отдает ребенку нужные данные. |
недавно узнал, что передачу простых переменных можно осуществлять по типу flashvars;
при загрузке ребенка в родителе пишем: Код AS3:
Код AS3:
А по сабжу - я обычно пользуюсь методом, как описал bav под номером 2. Ща попробую события, давно хотел научиться) Добавлено через 36 минут bav, а не могли бы вы написать простенький пример кода, как осуществить событийное взаимодействие? |
Код AS3:
Цитата:
В случае наследования от Sprite выйти из ситуации можно, обратившись к методу следующим образом: Код AS3:
Добавлено через 9 минут Разумеется, у ребенка при таком подходе найдется не одно только желание COMPLETE. У него их будет много: - Папа, хочу конфету! - На тебе конфету. - Хочу шариков! - На тебе шариков. - Папа, а сколько у тебя детей? И дай мне ссылку на сокет! - Вместе с тобой - 43. А ссылку не дам, сокет детям не игрушка. |
| Часовой пояс GMT +4, время: 01:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.