溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么將對(duì)象用于Flex數(shù)據(jù)綁定

發(fā)布時(shí)間:2021-12-14 13:43:12 來源:億速云 閱讀:121 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“怎么將對(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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI