![]() |
Ссылка на app в медиаторе
При старте приложения регистрируются несколько медиаторов компонентов. Один из компонентов создаётся динамически и должен выводиться на сцену по событию, которое ловит медиатор этого компонента. Так вот, чтобы вывести этот компонент получается мне нужна ссылка на основное приложение, чтобы знать куда выводить этот компонент (если конкретнее, то это должно быть popup окно). Как её получить? Или есть ли какие либо другие пути решения этой задачи?
|
Хмм... Могу попробовать объяснить, как делаю я. У меня всегда есть медиатор StageMediator (он регистрируется первым, хотя это не особо важно). Его viewComponent - сцена (ну или спрайт, в котором находится всё приложение). И ещё в этом медиаторе есть public метод addChildToStage( displayObj: DisplayObject ):void {stage.addChild(displayObj)};
итого, чтобы в любом другом медиаторе добавить что-то на сцену, пишется что-то вроде: StageMediator(facade.retrieveMediator(StageMediator.NAME)).addChildToStage(viewComponent); Не знаю, хороший ли это метод или нет, но пока пользуюсь им. Если что-то не понятно - спрашивай. |
Спасибо за идею.
Но получаю ссылку на DisplayObject основного приложения следующим образом: Код AS3:
|
PureMVC не смотрел и не юзал, но в любом случае подобный подход неверен, в силу того, что один из детей сам планирует попасть на стейдж.
|
etc: Да, действительно, вывод его надо делать в ApplicationMediator. Так и сделал.
|
Странный вывод.
Я бы все же придерживался тезиса о том, что условный stage mediator умеет добавлять и удалять объекты со сцены но по существу не знает что это за объекты. Динамически созданный визуальный объект через свой медиатор отправляет оповещение со ссылкой на самого себя. Зарегистрированная в ApplicationFacade команда,переопределяя execute, вытаскивает этот объект через notification.getbody() as DisplayObject и добавляет его на сцену через api stage mediator - а - функции api медиатора определяйте сами. |
| Часовой пояс GMT +4, время: 16:50. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.