<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> можна використовувати для зв’язування до більш ніж одного об’єкту.
