學習筆記 如何使變量進行Flex數據綁定
本文和大家重點討論一下Flex數據綁定,當一個變量標記為可綁定后,其它對象就可以修改該變量的其它目的屬性的值。將一個變量上進行Flex數據綁定,你必須使用下面三種方式中的一種來定義[Bindable]標記。
Flex數據綁定
有關Flex數據綁定的知識收集整理了一下:
Flex數據綁定使得在應用程序中不同的層間傳遞數據的變得簡單和方便,通過將源屬性與目標屬性進行關聯來實現。當源屬性的值有更新時,會產生一個事件來通知目的屬性來進行更新。
當一個變量標記為可綁定后,其它對象就可以修改該變量的其它目的屬性的值。將一個變量上進行Flex數據綁定,你必須使用下面三種方式中的一種來定義[Bindable]標記。
◆在一個類的定義之前
- packagecom.oreilly.flexcookbook
- {i
- importflash.events.EventDispatcher;
- [Bindable]
- publicclassDataObjectextendsEventDispatcher{}
- }
◆在一個類創建之前添加[Bindable]標記創建一個綁定的表達式從而使得類的所有共有屬性變得可以綁定。所有可以綁定的類必須由IEventDispatcher類實現,因為Flex數據綁定是基于事件驅動,來復制源數據到目的數據。
.在變量的前面進行聲明
- [Bindable]privatevar_lastName:String;
- [Bindable]protectedvar_age:Number;
- [Bindable]publicvarfirstName:String;
聲明為私有的變量標記為可綁定時,則只能在類中進行綁定。保護的變量則只能在繼承或者類本身可見。而共有變量都可見。
◆在屬性的前面通過隱含的getter/setter方法來變向的進行綁定:
- privatevar_lastName:String;
- ...
- [Bindable]
- publicfunctiongetlastName():String
- {
- return_lastName;
- }p
- publicfunctionsetlastName(str:String):void
- {_
- lastName=str;
- }
當你通過添加[Bindable]標記在getter的聲明的上方,來定義隱含的getter/setter為可綁定的方法,則該變量可以通過點標語法進行存取。這樣可以你通過同樣的語法來存
取非綁定的變量,自有變量等來設置數據源綁定。
◆在框架內部,當綁定的變量值更新時,框架會發送propertyChange事件來更新數據。
[Bindable]標記接受一個事件屬性,通過定義一個自定義的事件類型:
- [Bindable(event="myValueChanged")]
默認情況下事件屬性被設置為propertyChange。如果不進事件類型進行修改,則目的變量會被內部使用該類型進行提示。如果你自定義了該屬性,則必須在類的內部進行聲明。
綁定是通過事件通知來實現的,當應用程序中的源變量修改或者在初始化時,就會被觸發。
你可以通過執行綁定的方法,來強制要求目標為mx.core.UIComponent子類的對象的Flex數據綁定執行。
【編輯推薦】