Показать сообщение отдельно
Старый 22.08.2008, 01:21
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 11  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
В таком случае такая схема:
Объявляем новый класс - Data, т.е. данные, которые должны быть общими у нескольких контроллов. При создании этого объекта в него передается XML, в котором будет зеркалиться его значение. В контроллы передается этот объект данных. Если контроллу нужно реагировать на изменение данных, он подписывается на событие CHANGED у этого экземпляра данных.

Код:
 class Controll {
    function set width(value:Data) {
       value.addEventListener(CHANGED, onChange);
    }

    funtrion onChange() {
        redraw();
    }
 }
Например ситуация - имеем два контролла - оба управляют общей шириной.

Код:
  var controll1:Controll = new Controll();
  controll1.width = new Data();
  var controll2:Controll = new Controll();
  controll2.width = controll1.width;
Теперь при изменении значения у controll1.width
Код:
  controll1.width.value = 100;
Вызовется событие onChanged у всех зависимых контроллов. Также данные будут изменены в XML.


Последний раз редактировалось Яски; 22.08.2008 в 01:26.