學習筆記 如何使變量進行Flex數(shù)據(jù)綁定
本文和大家重點討論一下Flex數(shù)據(jù)綁定,當一個變量標記為可綁定后,其它對象就可以修改該變量的其它目的屬性的值。將一個變量上進行Flex數(shù)據(jù)綁定,你必須使用下面三種方式中的一種來定義[Bindable]標記。
Flex數(shù)據(jù)綁定
有關(guān)Flex數(shù)據(jù)綁定的知識收集整理了一下:
Flex數(shù)據(jù)綁定使得在應(yīng)用程序中不同的層間傳遞數(shù)據(jù)的變得簡單和方便,通過將源屬性與目標屬性進行關(guān)聯(lián)來實現(xiàn)。當源屬性的值有更新時,會產(chǎn)生一個事件來通知目的屬性來進行更新。
當一個變量標記為可綁定后,其它對象就可以修改該變量的其它目的屬性的值。將一個變量上進行Flex數(shù)據(jù)綁定,你必須使用下面三種方式中的一種來定義[Bindable]標記。
◆在一個類的定義之前
- packagecom.oreilly.flexcookbook
- {i
- importflash.events.EventDispatcher;
- [Bindable]
- publicclassDataObjectextendsEventDispatcher{}
- }
◆在一個類創(chuàng)建之前添加[Bindable]標記創(chuàng)建一個綁定的表達式從而使得類的所有共有屬性變得可以綁定。所有可以綁定的類必須由IEventDispatcher類實現(xiàn),因為Flex數(shù)據(jù)綁定是基于事件驅(qū)動,來復制源數(shù)據(jù)到目的數(shù)據(jù)。
.在變量的前面進行聲明
- [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為可綁定的方法,則該變量可以通過點標語法進行存取。這樣可以你通過同樣的語法來存
取非綁定的變量,自有變量等來設(shè)置數(shù)據(jù)源綁定。
◆在框架內(nèi)部,當綁定的變量值更新時,框架會發(fā)送propertyChange事件來更新數(shù)據(jù)。
[Bindable]標記接受一個事件屬性,通過定義一個自定義的事件類型:
- [Bindable(event="myValueChanged")]
默認情況下事件屬性被設(shè)置為propertyChange。如果不進事件類型進行修改,則目的變量會被內(nèi)部使用該類型進行提示。如果你自定義了該屬性,則必須在類的內(nèi)部進行聲明。
綁定是通過事件通知來實現(xiàn)的,當應(yīng)用程序中的源變量修改或者在初始化時,就會被觸發(fā)。
你可以通過執(zhí)行綁定的方法,來強制要求目標為mx.core.UIComponent子類的對象的Flex數(shù)據(jù)綁定執(zhí)行。
【編輯推薦】
- 解析Flex數(shù)據(jù)綁定的幾種方式
- Flex數(shù)據(jù)綁定簡單技巧
- 技術(shù)前沿 看Flex客戶端緩存技術(shù)如何使用
- Flex數(shù)據(jù)綁定的四種方式
- Flex內(nèi)存泄露解決方法和內(nèi)存釋放優(yōu)化原則