Показать сообщение отдельно
Старый 04.01.2011, 12:35
qmel вне форума Посмотреть профиль Отправить личное сообщение для qmel Найти все сообщения от qmel
  № 4  
Ответить с цитированием
qmel

Регистрация: Dec 2010
Сообщений: 23
Здравствуйте! С новым годом! Спасибо за ответы. Я решил воспользоваться советом alatar, пишу set и get методы. Но т.к. я новичок во флексе, есть 3 вопроса:
1. как обращаться к значениям массива из selected чекбокса ?
2. правильно ли я везде расставил модификаторы [Bindable] ?
3. у меня нет события Close у меня есть кнопки Save и Clear после нажатия окно закрывается и сохраняет/очищает галочки в чекбоксе, как в таком случае получать из B изменившийся массив, генерить event в функциях onSave() или onClear() ? А как его ловить в А тогда ?

Вот что я написал пока:

В файле A

Код AS3:
[Bindable]
public var arrayInA:ArrayCollection;
 
<mx:Button click="var linkToB: B = new B(); UIUtils.addPopUp(linkToB, ... as DisplayObject, true); 
linkToB['arrayInB'] = arrayInA;"/>
В файле B
Код AS3:
[Bindable]
public var arrayInB:ArrayCollection;
 
[Bindable]
public function get changeArray():ArrayCollection {
  return arrayInB;
}
 
public function set changeArray(val:ArrayCollection):void {
  arrayInB = val;
}
 
private function onClear():void {
            UIUtils.showMessage("Clear!");
            UIUtils.removePopUp(this);
            for (var i:int = 0; i < 9; i++) {
	   changeArray[i] = false ;
	}
        }
 
private function onSave():void {
  if (one.selected)
      changeArray[1] = true;
  if (two.selected)
      changeArray[2] = true;
  if (three.selected)
      changeArray[3] = true;
  UIUtils.showMessage("Save!");
  UIUtils.removePopUp(this);
}
 
 
<mx:CheckBox id="one"
                    label="one"
                    selected="@{changeArray.getItemAt(1)}"/>//чекбокс не отображает правильно данные из массива arrayInA даже до изменений (когда все значения в массиве true)
 
<mx:CheckBox id="two"
                    label="two"
                    selected="@{changeArray.getItemAt(2)}"/>
<mx:CheckBox id="three"
                    label="three"
                    selected="@{changeArray.getItemAt(3)}"/>
 
 
<mx:Button label="Clear"
                click="onClear()"
 
<mx:Button label="Save"
                click="onSave()"/>
И верно ли я пытаюсь изменить значения массива этим - changeArray[i] = true; ?