|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Помогите с логикой связи загрузчика и вью, а именно, как вью должна считывать прогресс загрузки и сообщения об ошибках?
Происходит запуск приложения и если в загрузчик-менеджер загрузки передать ссылку на xml, то получается, что вью ещё не создана и отображать некому. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Мысли на этот момент у меня вот какие - сначала о первом запуске приложения: Выполнился Main и создал класс конфигурации приложения, где и создаются модель, вью, контроллер и получают настройки менеджеры. В один из этих менеджеров входит и ассет менеджер, в задачу которого входит создавать загрузчики и забирая контент, складывать его в фабрики. От сюда выходит, что первым должен инится ассет менеджер, так-как после создания mvc, все пойдет своим ходом и все вью получат ссылки на свои do из фабрик, а модели получит ссылки на vo. Но при таком раскладе вью не сможет отображать прогресс, так-как ещё не создана. Мои мысли о запуске ассет менеджера после создания mvc: Первым о чем хочется сказать, я не знаю, как вью, даже в первом случае, получит ссылку на прогресс. Но я опущу это и продолжу, создаются mvc и не чего не происходит, потому что они ещё не наполнены, потом я запускаю загрузку и после завершения мне нужно у каждого класса mvc вызвать метод init. Но это уже криво... И так же, как и в первом случае, я не знаю, как вью получит ссылку на прогресс. И ещё вот какой момент я не понимаю. Есть задача в запущенном приложении, грузить фото. Запускается сценарий загрузки и ассет менеджер создает столько загрузчиков, скольно нужно загрузить фото. От сюда вопрос - как вью получить ссылки на все эти загрузчики, чтобы для каждого создать вью-прогресса загрузки? |
|
|||||
Цитата:
*trollface.jpg* Чтобы вью знала прогрресс - ассет-манагер должен каким-то образом об этом прогрессе сообщать. Собственно для ответа на ваш вопрос - этого достаточно. Более развернуто: 1. Есть некий глобальный прелоадер который инитится после инициализации ассетманагера, но до старта загрузки. 2. Этот прелоадер показывает прогресс каких-то основных ассетов. Тут важно найти баланс, потому что весь арт засунуть в этот прелоадер - отложите запуск приложения на неопределенное время. А в играх загрузка более 10 сек - не ок. 3. Далее ассет манагер либо фабрика должна выдать либо ссылку на лоадер либо иной интерфейс чтоб любая вьюха могла получить ссылку на нечто, которое можно сразу добавить на сцену либо же дождаться пока оно материализуется и желательно посчитать проценты. Как-то так. Добавлено через 30 секунд И к мвц это вроде не относится.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
Ассеты и лоадеры это не данные.
Даннные это например номер_ид текста. А по этому номеру берется текст из локализации. Или так же какой-то ид ассета, а по иду берется урл из манагера либо же ассет из фабрики. В модели ассетов НЕТ.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Есть здесь кто живой? %)
|
|
|||||
Флеши меняются, а хороший MVC остается на века!
|
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Кто-нибудь помогите решить заморочку).
Я пишу средне-небольшой графический редактор, используя ест-но парадигму MVC. Спроектировал основную часть редактора и настал черед реализации графических инструментов. Так вот, начал я с инструмента "Линейка". Вид и функционал её прост: имеются 2 стрелки на обоих концах, которые можно тянуть в разные стороны и при этом считается длина от одного конца к другому, также её можно поворачивать на 90 градусов. Линеек в редакторе можно создавать бесконечное множество. Ближе к заморочке. Следуя MVC, я создал Модель, Контроллер и Вьюшку для данного инструмента. Вьюшка сообщает Контроллеру о том, что линейку тянут. Контроллер получает координаты конца линейки и говорит Модели просчитать новые координаты кончиков стрелок линейки, а также посчитать длину от одного конца к другому. Модель всё просчитывает и диспатчит событие об изменении. Вьюшка ловит событие от Модели, берёт у неё данные и рисует. Как мы видим обязанности строго разделены между MVC. Модель содержит логику и данные, Вьюшка только отображает, а Контроллер руководит процессом. Всё было бы хорошо, если бы меня не посетила мысль, а не слишком ли так заморачиваться и забивать память приложения хранением MVC для каждого экземпляра Линейки, да ещё и для такого мелкого инструмента, и, вообще есть ли смысл разделять на триаду данный инструмент. А также при событии движения мыши получается куча всплытий событий от вьюхи, контроллера и модели. Почему бы не превратить все это в MV, где Вьюшка возьмёт на себя роль контроллера и часть математических расчётов. Но тогда я получу не очень красивый код и разрушу идею канонического MVC. Помогите кто-нить советом. Где я упоролся в данной случае? Последний раз редактировалось lammer.Ok; 29.10.2014 в 02:57. |
Часовой пояс GMT +4, время: 15:35. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|