|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Фабрика pop-up окон, архитектурное решение
Всем привет!
Есть приложение. В этом приложении можно открывать окна, которые блокируют весь функционал, кроме этого окна. Например, информация об игроке, текст ошибки, покупка игровых денег и т.д. Эти окна открываются в главной вьюшке, фабрикой таких окон. Сейчас пускаю бабблинг событие по DisplayObject`ам, оно всегда дойдёт до главной вьюшке и откроется окно. Это очень удобно: я могу открыть окно из любой тундры (подменю от меню по клику на значок игрока в окне просмотра его информации при начале боя в славном городе Арарат). Окна — по сути, отдельный элемент всего приложения: имеют полный контроль над приложением (в частности, могут общаться с сервером, менять модель игрока и т.д.). Это тоже удобно, от того что это не тупая вью я испытываю только комфорт. Вопрос заключается в том, что передавать в этом событии? Мои мысли: с одной стороны удобно создавать окно через рефлекшн и делать анналог apply в конструктор. Т.е. (конечно, "window.HelloWindow" будет константной) Но этот метод подразумевает что все окна находятся в текущем аппдомене. Т.е. неплохо было бы сделать XML файл, в котором было бы: А после менеджер, который подгружает windows.swf в дочерний домен при обращении к HelloWindow, если его там не было и жарит окно оттуда. На первый взгляд неплохо, но вспоминая истории wxvxw про балбесов, балующихся с рефлекшеном тут-и-там вкрадываются сомнения. Что вы об этом думаете?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Я обычно ничего не передаю в событии, а беру все из объекта диспатчащего событие, который имеет интерфейс. Например иконки товаров в магазине имеют интерфейс IAmGoods, который имеет геттеры cost, id, moneyID, lvl и тд. На основе этих данных, и данных из модели(количество денег, уровень) окно/контроллер окон решает что показать пользователю: какие кнопки, какой текст.
Т.е. в итоге по проекту разбросаны события просто, а уже в окнах/контроллере окон логика. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
А как ты получаешь разные окна? Одно окно - покупка випа, другое - продажа цветов. Эти данные несёт в себе рассыльщик события?
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 10.03.2011 в 14:31. |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Когда как, это могут быть разные типы событий("show.windowAlert", "show.windowShop"), т.е. один тип события - один класс окна. Или если суть у окна одна, например спросить разрешение на покупку чего либо, то контроллер окон(или само окно) на основе типа объекта диспатчащего события решает как окно должно выглядеть: если продается цветок, то в окне появляется поздравление с 8 марта, если продается что-то другое, то поздравление не появляется.
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Понятно, ты делаешь окно на основе типа событий. Но как контроллер узнает, какой интерфейс вернёт геттер — IShoppableFlowers или IBanya?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Какой именно контроллер и геттер?)
Что-то все молчат остальные 0о |
Часовой пояс GMT +4, время: 02:53. |
|
« Предыдущая тема | Следующая тема » |
|
|