您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么將對象用于Flex數據綁定”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么將對象用于Flex數據綁定”這篇文章吧。
將對象用于Flex數據綁定
當使用對象進行工作時,不得不考慮什么時候定義到這個對象的綁定?或者考慮什么時候定義一個到這個對象屬性的綁定?
綁定到對象
當使一個對象成為Flex數據綁定表達式的源時,Flex數據綁定發生在這個對象被更新之時,或者這個對象的引用被更新之時,但不能發生在這個對象的單個(數據)域(feild)被更新之時。
下面的范例中,創建了Object類的子類,這個子類帶有兩個屬性,stringProp和intProp,但沒有使這兩個屬性成為可綁定屬性:
packagemyComponents { //binding/myComponents/NonBindableObject.as //Makenoclasspropertiesbindable. publicclassNonBindableObjectextendsObject{ publicfunctionNonBindableObject(){ super(); } publicvarstringProp:String="Stringproperty"; publicvarintProp:int=52; } }
因為這個類的兩個屬性不是可綁定屬性,當它們被更新時Flex不會發出事件去觸發Flex數據綁定。接下來在Flex應用中使用這個類,如下面的范例所示:
<?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;"/>
因為沒有使NonBindableObject類的單個數據域(fields)成為可綁定屬性,所以應用在兩個Text控件的綁定在應用啟動時以及在myObj被更新時才會被更新。在編譯這個應用時,編譯器會輸出警告信息,提示Flex數據綁定機制不能檢測stringProp和intProp屬性的變化。
綁定到對象的屬性
為了使對象的屬性可綁定,要創建新的類定義,如下面的范例所示:
packagemyComponents { //binding/myComponents/BindableObject.as //Makeallclasspropertiesbindable. [Bindable] publicclassBindableObjectextendsObject{ publicfunctionBindableObject(){ super(); } publicvarstringProp:String="Stringproperty"; publicvarintProp:int=52; } }
通過在類定義之前放置[Bindable]元數據標記,就可以使得類中所有public變量、以及所有完全具備setter及getter的public屬性成為可綁定的屬性。接下來就可以使用stringProp和intProp屬性作為Flex數據綁定的源,如下范例所示:
<?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;"/>
以上是“怎么將對象用于Flex數據綁定”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。