您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么將對(duì)象用于Flex數(shù)據(jù)綁定”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么將對(duì)象用于Flex數(shù)據(jù)綁定”這篇文章吧。
將對(duì)象用于Flex數(shù)據(jù)綁定
當(dāng)使用對(duì)象進(jìn)行工作時(shí),不得不考慮什么時(shí)候定義到這個(gè)對(duì)象的綁定?或者考慮什么時(shí)候定義一個(gè)到這個(gè)對(duì)象屬性的綁定?
綁定到對(duì)象
當(dāng)使一個(gè)對(duì)象成為Flex數(shù)據(jù)綁定表達(dá)式的源時(shí),F(xiàn)lex數(shù)據(jù)綁定發(fā)生在這個(gè)對(duì)象被更新之時(shí),或者這個(gè)對(duì)象的引用被更新之時(shí),但不能發(fā)生在這個(gè)對(duì)象的單個(gè)(數(shù)據(jù))域(feild)被更新之時(shí)。
下面的范例中,創(chuàng)建了Object類的子類,這個(gè)子類帶有兩個(gè)屬性,stringProp和intProp,但沒有使這兩個(gè)屬性成為可綁定屬性:
packagemyComponents { //binding/myComponents/NonBindableObject.as //Makenoclasspropertiesbindable. publicclassNonBindableObjectextendsObject{ publicfunctionNonBindableObject(){ super(); } publicvarstringProp:String="Stringproperty"; publicvarintProp:int=52; } }
因?yàn)檫@個(gè)類的兩個(gè)屬性不是可綁定屬性,當(dāng)它們被更新時(shí)Flex不會(huì)發(fā)出事件去觸發(fā)Flex數(shù)據(jù)綁定。接下來在Flex應(yīng)用中使用這個(gè)類,如下面的范例所示:
<?xmlversionxmlversion="1.0"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initObj();"> <![CDATA[ importmyComponents.NonBindableObject; [Bindable] publicvarmyObj:NonBindableObject=newNonBindableObject(); [Bindable] publicvaranotherObj:NonBindableObject= newNonBindableObject(); publicfunctioninitObj():void{ anotherObj.stringProp='anotherObject'; anotherObj.intProp=8; } ]]> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.stringProp" click="myObj.stringProp='newstring';"/> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.intProp" click="myObj.intProp=10;"/> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj" click="myObj=anotherObj;"/>
因?yàn)闆]有使NonBindableObject類的單個(gè)數(shù)據(jù)域(fields)成為可綁定屬性,所以應(yīng)用在兩個(gè)Text控件的綁定在應(yīng)用啟動(dòng)時(shí)以及在myObj被更新時(shí)才會(huì)被更新。在編譯這個(gè)應(yīng)用時(shí),編譯器會(huì)輸出警告信息,提示Flex數(shù)據(jù)綁定機(jī)制不能檢測(cè)stringProp和intProp屬性的變化。
綁定到對(duì)象的屬性
為了使對(duì)象的屬性可綁定,要?jiǎng)?chuàng)建新的類定義,如下面的范例所示:
packagemyComponents { //binding/myComponents/BindableObject.as //Makeallclasspropertiesbindable. [Bindable] publicclassBindableObjectextendsObject{ publicfunctionBindableObject(){ super(); } publicvarstringProp:String="Stringproperty"; publicvarintProp:int=52; } }
通過在類定義之前放置[Bindable]元數(shù)據(jù)標(biāo)記,就可以使得類中所有public變量、以及所有完全具備setter及getter的public屬性成為可綁定的屬性。接下來就可以使用stringProp和intProp屬性作為Flex數(shù)據(jù)綁定的源,如下范例所示:
<?xmlversionxmlversion="1.0"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initObj();"> <![CDATA[ importmyComponents.BindableObject; [Bindable] publicvarmyObj:BindableObject=newBindableObject(); [Bindable] publicvaranotherObj:BindableObject= newBindableObject(); publicfunctioninitObj():void{ anotherObj.stringProp='anotherObject'; anotherObj.intProp=8; } ]]> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.stringProp" click="myObj.stringProp='newstring';"/> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.intProp" click="myObj.intProp=10;"/> <mx:Buttonlabelmx:Buttonlabel="ChangemyObj" click="myObj=anotherObj;"/>
以上是“怎么將對(duì)象用于Flex數(shù)據(jù)綁定”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。