|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2012
Адрес: Hamburg
Сообщений: 22
|
mvcExpress (AS3 фрэймворка) презентация для FITC
Здравствуйте.
предлагаю вашему вниманию мой фреймворк "MvcExpress": http://mvcexpress.org/. MvcExpress облегчает программирование и работает быстрее чем PureMVC и RobotLegs, бесплатен(open source). Презентация фреймворка состоится на FITC в Амстердаме 18-19 февраля 2013 года. Охотно отвечу на все вопросы, как онлайн, и если кто приедет в Амстердаме, на FITC. Проголосовать за презентацию можно здесь: http://submit.fitc.ca/forums/139893-...work-evolution Спасибо за внимание! |
|
|||||
Насчет первого я бы поспорил. Ничуть не проще Robotlegs. Частично по стилю похож на Robotlegs, частично на pureMVC. Команды регистрируются только по типу события, класс события никак не проверяется. Пока впечатления не однозначные.
Добавлено через 4 минуты View нельзя ижектить в медиатор как интерфейс, только как класс.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Oct 2012
Адрес: Hamburg
Сообщений: 22
|
Цитата:
хотя... шаг за шагом я добавляю новые функции, и я думаю, скоро мне придется изменить "Simplest" в "more features". alatar также прав. Этат фрэймворк представляет собой смесь PureMVC и RobotLegs лучших функций. Именно поэтому в презентацие я буду говорить об "эволюции", а не "революция". трудно улучшить RobotLegs простоту. Но я думаю, что я лучше назвал объектю и функций, и интерфейс чище, больше... "explicid". Эта тема имет субъективный характер, но простота - одна из моих основных целей. Я думал над тем, но мне не удалось придумать хороший сценарий для этой функции. можешь дать хороший пример? Последний раз редактировалось Deril_AS3; 22.10.2012 в 17:20. |
|
|||||
Набор однотипных view, например графики, с одинаковым поведением и интерфейсом. Разница только в поставляемой модели. Базовый медиатор напрашивается один, разница будет только в имени модели, что решается наследованием медиатора.
Есть у меня один проект с таким функционалом. Киллер-фичей было бы создание правила инжекта модели в медиатор в зависимости от класса view. Т.к. модели тоже имеют один интерфейс. Добавлено через 7 минут В MvcExpress меня также смущает, что proxy передается только как объект. Нет ленивой инициализации. Добавлено через 10 минут Также хотелось бы, что бы CommandMap#execute возвращал созданную команду, для простой реализации AsyncCommand и цепочек команд.
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 22.10.2012 в 14:34. |
|
|||||
Регистрация: Oct 2012
Адрес: Hamburg
Сообщений: 22
|
Спасибо за пример! я подумаю над этом, сделаю модель.
Цитата:
для async commands и цепочек у меня есть это решение: package com.mindScriptAct.mapEditor.controler { ... public class AsyncCommand extends Command { public function execute(blank:Object):void { var imageLoader:Loader = new Loader(); imageLoader.addEventListener(Event.COMPLETE, handleImmageLoad); imageLoader.load(new URLRequest("example.jpg")); } private function handleImmageLoad(event:Event):void { // think what to do next... if (...) { // execute next command if needed.. commandMap.execute(NextCommandInChain, params); } } } } Я хочу, чтоб именно так осталась. Добавлено через 4 часа 43 минуты Цитата:
Последний раз редактировалось Deril_AS3; 22.10.2012 в 20:16. |
|
|||||
Картинку лучше вставить в сообщение в расширенном режиме. На данный момент я ее не вижу.
Добавлено через 3 минуты Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Oct 2012
Адрес: Hamburg
Сообщений: 22
|
hm...
В этой конкретной ситуации, я бы делал так: package temp { import org.mvcexpress.mvc.Mediator; public class BaseMediator extends Mediator { protected var baseView:IBaseInterface; override public function onRegister():void { // mediate IBaseIterface specific stuff. } } } package temp { import org.mvcexpress.mvc.Mediator; public class A1Mediator extends BaseMediator{ private var _view:WiewA1; [Inject] public var proxyX:ProxyX; [Inject] public function set view(value:WiewA1):void { baseView = value; _view = value; } override public function onRegister():void{ super.onRegister(); // mediate ViewA1 specific stuff. } } } и использовать так: mediatorMap.map(ViewA1, A1Mediator); mediatorMap.map(ViewA2Sub, A2Mediator); mediatorMap.map(ViewBSub, BMediator); ... var testView:ViewA1 = new ViewA1(); mediatorMap.mediate(testView); Добавить view inject как интерфейс легко, но я не могу найти хороший практический пример где это необходимо(как функция, или просто для удобства). Идея такова: каждый конкретный view должна иметь конкретный mediator. Если view имеет суперклас - mediator может иметь также суперклас, если это нужно. спасибо за комментарий! |
|
|||||
Я бы не назвал подобное решение элегантным.
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
Часовой пояс GMT +4, время: 07:58. |
|
« Предыдущая тема | Следующая тема » |
|
|