Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Ссылка на app в медиаторе (http://www.flasher.ru/forum/showthread.php?t=130737)

BeDLiNt 03.10.2009 16:12

Ссылка на app в медиаторе
 
При старте приложения регистрируются несколько медиаторов компонентов. Один из компонентов создаётся динамически и должен выводиться на сцену по событию, которое ловит медиатор этого компонента. Так вот, чтобы вывести этот компонент получается мне нужна ссылка на основное приложение, чтобы знать куда выводить этот компонент (если конкретнее, то это должно быть popup окно). Как её получить? Или есть ли какие либо другие пути решения этой задачи?

cauchy 03.10.2009 20:19

Хмм... Могу попробовать объяснить, как делаю я. У меня всегда есть медиатор StageMediator (он регистрируется первым, хотя это не особо важно). Его viewComponent - сцена (ну или спрайт, в котором находится всё приложение). И ещё в этом медиаторе есть public метод addChildToStage( displayObj: DisplayObject ):void {stage.addChild(displayObj)};
итого, чтобы в любом другом медиаторе добавить что-то на сцену, пишется что-то вроде:
StageMediator(facade.retrieveMediator(StageMediator.NAME)).addChildToStage(viewComponent);
Не знаю, хороший ли это метод или нет, но пока пользуюсь им. Если что-то не понятно - спрашивай.

BeDLiNt 04.10.2009 09:34

Спасибо за идею.
Но получаю ссылку на DisplayObject основного приложения следующим образом:

Код AS3:

var main:DisplayObject = facade.retrieveMediator(ApplicationMediator.NAME).getViewComponent() as DisplayObject;

Незнаю, насколько верно так делать, относительно идеи PMVC, так что если у кого есть ещё какие либо мысли по этому поводу, буду очень рад выслушать.

etc 04.10.2009 11:29

PureMVC не смотрел и не юзал, но в любом случае подобный подход неверен, в силу того, что один из детей сам планирует попасть на стейдж.

BeDLiNt 04.10.2009 13:32

etc: Да, действительно, вывод его надо делать в ApplicationMediator. Так и сделал.

inozemcev 27.09.2010 19:19

Странный вывод.

Я бы все же придерживался тезиса о том, что условный 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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.