Цитата:
Сообщение от PainKiller
везде по разному,
|
Представим так, есть 5 кнопок и все эти кнопки имеют свой слушатель клик, я их создаю и кидаю на сцену в отдельном классе. Потом создаю Медиатор для этого класса, регистрирую все 5 событий которые могут посылать кнопки и переключаюсь через switch выполняя команды.
Код AS3:
override public function handleNotification(note:INotification):void
{
switch (note.getName())
{
case AppFacade.OPEN_WINDOW:
viewComponent.addChild(window);
Cookie.setCookie("OPEN_WINDOW", 10);
break;
case AppFacade.CLOSE_WINDOW:
viewComponent.removeChild(window);
Cookie.setCookie("CLOSE_WINDOW", 11);
break;
case AppFacade.EFFECT_WINDOW:
Cookie.setCookie("EFFECT_WINDOW", 12);
break;
case AppFacade.TRANSITION_IN:
Cookie.setCookie("TRANSITION_IN", 13);
break;
case AppFacade.TRANSITION_OUT:
Cookie.setCookie("TRANSITION_OUT", 14);
break;
}
}
Правильно делать так? Если управлять все эти спрайты через один Медиатор и обмениваться 20-30 сообщениями, по моему что то не так(
К тому же, при удалении спрайта из Медиатора, сам компонент все еще висит в памяти.
Если удалить таким образом
Код AS3:
viewComponent.removeChild(window);
Добавлено через 5 часов 9 минут
Ах да! По моему начинаю понимать что к чему.
На каждую вьюшку (компонент) создаю свой медиатор, то есть даже одна кнопочка сама по себе не может участвовать в фреймворке без посредника - медиатора. Это прежде всего полезно тем, что мы можем в будущем менять кнопки (классы) как хотим, без затрагивания всего кода и инициализация пройдет автоматически с заранее подготовленным медиатором.
И что самое интересное, штатные оповещения (dispatchEvent) используются только внутри вьюшек (компонентов) и нигде больше. Это придает гибкость приложению.
Все медиаторы, будто главный или последний, должны регистрироваться в команде.
Прокси могут только оповещать, отправлять события но не принимать. Полностью изолированный класс от всей системы.
В команду можно прописать сколько угодно прокси и медиаторов, зависимо от логики приложения, архитектуры.
В итоге я пришел к тому, что PureMVC действительно очень прост в изучении, логичен и очень гибкий инструмент. Прошло 5 дней и он как на ладони) Осталось только начать и творить по принципу Пюре.