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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.11.2008, 03:09
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 11  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Цитата:
Сообщение от __etc Посмотреть сообщение
1) Это каким образом изменение модели прошло в обход контроллера? Контроллер, если и слушает изменение модели, то только лишь те изменения, которые требуют добавления/удаления вьюверов. В противном случае, изменения отслеживаются исключительно вьюверами. Ну а если подходить к возможным замкнутым рекурсиям, то в любом случае (в любом, это важно), в сеттере должна стоять проверка на текущее значение, типа if (this._somevalue === value) return;.
Я про случай делегирования, когда во вьювере нет функции апдейта:
Код AS3:
//контроллер
ns = new NumericStepper();
ns.addEventListener(Event.CHANGE, updateModel);
model.addEventListener(Event.CHANGE, updateViewers);
 
function updateViewers():void{
 ns.value = model.value;
}
 
function updateModel():void{
 model.value = ns.value;
}
Так значит ситуация, когда сеттер вызывается вхолостую из-за того, что вьювер сам себя уже проапдейтил (тот же NumericStepper), возможна (см. код выше)?

Или все же надо сделать класс, наследующийся от NumericStepper, и убирающий этот "самоапдейт" из него?

Логика подсказывает, что проще вызвать сеттер вхолостую (с проверкой который), чем все делать идеально "правильно" переписав кучу стандартных компонент под "идеологию MVC".


Последний раз редактировалось s8000_1; 25.11.2008 в 03:23.
Создать новую тему   Часовой пояс GMT +4, время: 04:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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