Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2010, 12:48
Vier вне форума Посмотреть профиль Отправить личное сообщение для Vier Посетить домашнюю страницу Vier Найти все сообщения от Vier
  № 1  
Ответить с цитированием
Vier

Регистрация: Sep 2004
Сообщений: 90
По умолчанию MVC hello world

Прочитал в поиске несколько тем про mvc, но как-то до конца не понял некоторые моменты.
Если форуму не лень, объясните еще раз.

Хочу сделать менюшку. Данные с ее настройками кнопок меню (картинки, координаты) лежат в xml.
Правильней парсить xml в моделе или лучше это сделать в контроллере и потом передать в модель?
Все ли события надо прогонять через контроллер? То есть, если во view в конструкторе передается модель, как будет происходить события выбора менюшки?
Ловлю клик во view, меняюиз view в моделе номер выбранной менюшки, после чего модель диспатчит событие о том что она изменилась, это событие ловит контроллер и запускает, ну например, анимацию во view? Это правильный расклад?

Старый 29.04.2010, 13:24
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 2  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Да не зацикливайтесь вы на канонической реализации mvc, делайте как вам удобнее Паттерны призваны упростить жизнь, а не усложнить. Для одной менюшки я бы вообще не стал писать mvc реализацию, оно того не стоит.
Смотришь чужой код, а одна кнопка занимает 15 классов, хотя должна занимать 15 строк.
__________________
#flasher@irc.trg.ru:6667

Старый 29.04.2010, 14:00
Vier вне форума Посмотреть профиль Отправить личное сообщение для Vier Посетить домашнюю страницу Vier Найти все сообщения от Vier
  № 3  
Ответить с цитированием
Vier

Регистрация: Sep 2004
Сообщений: 90
Да нет, менюшка эта, как пример. Mvc мне нужен не ради mvc, просто несколько классов в моей программке превратилось в огромную свалку логики, лиснеров и спрайтов ) И пришло время их отрефакторить.

Старый 29.04.2010, 17:13
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
:)

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,277
http://www.flasher.ru/forum/showthread.php?t=131588
http://www.flasher.ru/forum/showthread.php?t=138349

Старый 29.04.2010, 20:56
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Новосибирск :D
Сообщений: 6,590
Записей в блоге: 17
Цитата:
Все ли события надо прогонять через контроллер? То есть, если во view в конструкторе передается модель, как будет происходить события выбора менюшки?
Ловлю клик во view, меняюиз view в моделе номер выбранной менюшки, после чего модель диспатчит событие о том что она изменилась, это событие ловит контроллер и запускает, ну например, анимацию во view? Это правильный расклад?
Нет. Происходит клик на view. View диспатчит событие о том, что был клик, это ловит контроллер, думает что с этим сделать и меняет модель, если считает нужным. Модель меняется и диспатчит событие о том, что изменилась, это ловит view и изменяет свой вид.

Старый 30.04.2010, 13:00
Vier вне форума Посмотреть профиль Отправить личное сообщение для Vier Посетить домашнюю страницу Vier Найти все сообщения от Vier
  № 6  
Ответить с цитированием
Vier

Регистрация: Sep 2004
Сообщений: 90
Psycho Tiger, спасибо. А как правильней контроллеру подписываться на события из view? Создавать спрайты с кнопками в контроллере вешать на них лиснеры и передавать во view, или повесить лиснеры целиком на вью? Или по-ситуации?

Старый 30.04.2010, 13:36
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 7  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Вью и должен диспатчить что нужно. Если вы хотите поймать событие Click, вешайте на вью слушатель Click, можно создавать свои события и пользоваться бабблингом.
__________________
#flasher@irc.trg.ru:6667

Старый 30.04.2010, 14:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Новосибирск :D
Сообщений: 6,590
Записей в блоге: 17
Цитата:
Сообщение от Vier Посмотреть сообщение
Psycho Tiger, спасибо. А как правильней контроллеру подписываться на события из view? Создавать спрайты с кнопками в контроллере вешать на них лиснеры и передавать во view, или повесить лиснеры целиком на вью? Или по-ситуации?
Контроллер не должен ничего создавать во вьюшке.
Контроллер подписывается на события от view, на мой взгляд лучше всего чтобы он не подписывался на события от view.mySprite, к примеру. Потому что тогда вьюшка обязательна должна иметь этот самый mySprite, что не айс. Можно либо диспатчить одно кастомное событие, которое содержит всю информацию о произошедшем, либо подписываться на много событий.

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
MVC , pattern
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.