<mx:Binding />
среда, май 28, 2008Довольно часто мы создаём глобальную переменную (в рамках mxml-компонента), которая связывается (binding) с переменной внутреннего компонента:
- <?xml version=”1.0″ encoding=”utf-8″?>
- <mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” width=”400″ height=”300″>
- <mx:TextInput text=”{textInputText}” />
- <mx:String id=”textInputText” />
- </mx:Canvas>
Но при этом связывание одностороннее, т.е. в приведённом примере, если пользователь введёт текст в поле, то переменная textInputText не измениться. На помощь приходит тег <Binding>.
- <?xml version=”1.0″ encoding=”utf-8″?>
- <mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” width=”400″ height=”300″>
- <mx:TextInput id=”ti” text=”{textInputText}” />
- <mx:String id=”textInputText” />
- <mx:Binding source=”ti.text” destination=”textInputText” />
- </mx:Canvas>
Единственный минус в том, что нужно придумывать id для TextInput
Обновление:
Оказывается можно сделать проще
- <?xml version=”1.0″ encoding=”utf-8″?>
- <mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” width=”400″ height=”300″>
- <mx:TextInput id=”ti” text=”{textInputText}” />
- <mx:String id=”textInputText”>{ti.text}</mx:String>
- </mx:Canvas>
Это не избавляет нас от придумывания id, но бережёт одну строчку кода. А <binding> можно использовать для связывания к больше чем одному объекту.
