久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

Flex數(shù)據(jù)綁定怎么用

這篇文章給大家分享的是有關(guān)Flex數(shù)據(jù)綁定怎么用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)龍州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

Flex數(shù)據(jù)綁定

1.關(guān)于Flex數(shù)據(jù)綁定

Flex數(shù)據(jù)綁定是將一個(gè)對象中的數(shù)據(jù)同另一個(gè)對象中的數(shù)據(jù)聯(lián)系在一起的過程。Flex數(shù)據(jù)綁定為在應(yīng)用的不同層之間傳遞數(shù)據(jù)提供了便捷方法。Flex數(shù)據(jù)綁定需要一個(gè)源屬性,一個(gè)目的屬性,以及用于表明何時(shí)將數(shù)據(jù)從源屬性拷貝到目的屬性的觸發(fā)事件。當(dāng)源屬性變化時(shí),對象發(fā)出觸發(fā)事件。

Adobe Flex 提供三種方法用于指定Flex數(shù)據(jù)綁定:MXML 中的大括號({})語法,MXML 中的<mx:Binding>標(biāo)記,以及ActionScript 中的BindingUtils 的系列方法。

(1)下面的例子使用大括號({})語法來展示一個(gè)Text 控件,該控件的數(shù)據(jù)來自于TextInput 控件Text 屬性:

<?xml version="1.0"?> <!-- binding/BasicBinding.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI" text="Enter text here"/> <mx:Text id="myText" text="{myTI.text}"/> </mx:Application>

Flex數(shù)據(jù)綁定表達(dá)式中可以將ActionScript 代碼以及E4X 表達(dá)式作為一部分包含進(jìn)來,如下例所示:

<?xml version="1.0"?> <!-- binding/BasicBindingWithAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText" text="{myTI.text.toUpperCase()}"/> </mx:Application>

(2)用<mx:Binding>標(biāo)記作為大括號語法的替代方法。

在使用<mx:Binding>時(shí),要為<mx:Binding>標(biāo)記提供一個(gè)源屬性作為標(biāo)記的source 屬性以及提供一個(gè)目的屬性作為標(biāo)記的destination 屬性。下面的例子使用<mx:Binding>標(biāo)記定義了一個(gè)從TextInput 控件到Text 控件的Flex數(shù)據(jù)綁定:

<?xml version="1.0"?> <!-- binding/BasicBindingMXML.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText"/> <mx:Binding source="myTI.text" destination="myText.text"/> </mx:Application>


同大括號語法相比,用<mx:Binding>標(biāo)記能夠?qū)⒁晥D(用戶界面)同模型完全分離。
<mx:Binding>標(biāo)記也能實(shí)現(xiàn)將多個(gè)源屬性綁定到一個(gè)相同的目的屬性,這是因?yàn)槟軌蚨x多個(gè)具有相同的destination 屬性的<mx:Binding>標(biāo)記.

大括號語法和<mx:Binding>標(biāo)記都能在編譯期定義Flex數(shù)據(jù)綁定,而使用ActionScript 代碼則可以在運(yùn)行期定義Flex數(shù)據(jù)綁定,如下例所示:

<?xml version="1.0"?> <!-- binding/BasicBindingAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[  import mx.binding.utils.*;  // Define data binding.  public function initBindingHandler():void {  BindingUtils.bindProperty(myText, "text", myTI, "text");  }  ]]> </mx:Script> <mx:TextInput id="myTI"/> <mx:Text id="myText" preinitialize="initBindingHandler();"/> </mx:Application>

(3)創(chuàng)建用作Flex數(shù)據(jù)綁定源的屬性

當(dāng)創(chuàng)建一個(gè)用于綁定表達(dá)式源的屬性,那么在源屬性值發(fā)生變化時(shí)Flex 就能自動將值拷貝到所有的目的屬性。為了讓Flex 執(zhí)行拷貝,必須使用[Bindable]標(biāo)記來向Flex 注冊這個(gè)屬性。
The [Bindable] 元數(shù)據(jù)標(biāo)記有以下語法:

[Bindable]  [Bindable(event="eventname")]

如果忽略了事件名稱,F(xiàn)lex 自動地創(chuàng)建一個(gè)名為propertyChange 的事件,并且在屬性發(fā)生變化時(shí),由Flex 發(fā)出這個(gè)事件以觸發(fā)所有以這個(gè)屬性作為源的Flex數(shù)據(jù)綁定。

下面的例子作了一個(gè)maxFontSize 屬性和一個(gè)minFontSize 屬性變量可用于Flex數(shù)據(jù)綁定表達(dá)式的源:

<?xml version="1.0"?> <!-- binding/FontPropertyBinding.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[  // Define public vars for tracking font size.  [Bindable]  public var maxFontSize:Number = 15;  [Bindable]  public var minFontSize:Number = 5;  ]]> </mx:Script> <mx:Text text="{maxFontSize}"/> <mx:Text text="{minFontSize}"/> <mx:Button click="maxFontSize=20; minFontSize=10;"/> </mx:Application>

2. 在ActionScript 中定義Flex數(shù)據(jù)綁定

通過使用mx.binding.utils.BindingUtils能夠在ActionScript中定義綁定。這個(gè)類定義了幾個(gè)靜態(tài)方法,通過使用bindProperty() 方法可以讓我們創(chuàng)建一個(gè)到用變量實(shí)現(xiàn)的屬性的數(shù)據(jù)
綁定,或者用bindSetter()方法創(chuàng)建一個(gè)到用方法實(shí)現(xiàn)的屬性的Flex數(shù)據(jù)綁定。

(1)在MXML 與在ActionScript 定義Flex數(shù)據(jù)綁定的區(qū)別

編譯期在MXML 中定義Flex數(shù)據(jù)綁定與在運(yùn)行期在ActionScript 中定義Flex數(shù)據(jù)綁定有一些不同之處:
◆不能在由bindProperty()或者bindSetter()方法定義綁定表達(dá)式中引入ActionScript 代碼。相反,使用bindSetter()方法可以指定一個(gè)在綁定發(fā)生時(shí)調(diào)用的
方法。
◆ 不能在由ActionScript 中定義的綁定表達(dá)式中引入E4X 表達(dá)式。
◆ 在由the bindProperty()或者bindSetter()方法定義的Flex數(shù)據(jù)綁定表達(dá)式的屬性鏈中不能引入函數(shù)或者數(shù)組元素。更多信息見Working with bindable property chains.
◆同運(yùn)行時(shí)使用bindProperty()或者bindSetter()定義的Flex數(shù)據(jù)綁定相比,MXML 編譯器有更好的警告和錯(cuò)誤檢查支持。

(2)范例:在ActionScript 中定義Flex數(shù)據(jù)綁定

下面的例子是用bindSetter()建立了一個(gè)Flex數(shù)據(jù)綁定。bindSetter()方法的參數(shù)設(shè)置如下:
◆ 源(source) 對象
◆ 源(source) 屬性名
◆ 當(dāng)源(source)屬性變化被調(diào)用的方法。
下面的范例中,當(dāng)向TextInput 控件中輸入文本時(shí),文本會被轉(zhuǎn)換為大寫形式并拷貝給TextArea
控件:

<?xml version="1.0"?> <!-- binding/BindSetterAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[  import mx.binding.utils.*;  import mx.events.FlexEvent;  // Method called when myTI.text changes.  public function updateMyString(val:String):void {  myTA.text = val.toUpperCase();  }  <!-- Event listener to configure binding. -->  public function mySetterBinding(event:FlexEvent):void {  var watcherSetter:ChangeWatcher =  BindingUtils.bindSetter(updateMyString, myTI, "text");  }  ]]> </mx:Script> <mx:Label text="Bind Setter using setter method"/> <mx:TextInput id="myTI" text="Hello Setter" /> <mx:TextArea id="myTA" initialize="mySetterBinding(event);"/> </mx:Application>


(3)定義綁定觀察者 (watchers)

Flex 有個(gè)mx.binding.utils.ChangeWatcher 類,可以用這個(gè)類來定義一個(gè)Flex數(shù)據(jù)綁定觀察者。通常,F(xiàn)lex數(shù)據(jù)綁定觀察者在綁定發(fā)生時(shí)激活一個(gè)事件監(jiān)聽器??砂凑障旅娴姆独褂?br/>ChangeWatcher 的watch()即可建立一個(gè)Flex數(shù)據(jù)綁定觀察者:

<?xml version="1.0"?> <!-- binding/DetectWatcher.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initWatcher();"> <mx:Script> <![CDATA[  import mx.binding.utils.*;  import mx.events.FlexEvent;  import mx.events.PropertyChangeEvent;  public var myWatcher:ChangeWatcher;  // Define binding watcher.  public function initWatcher():void {  // Define a watcher for the text binding.  ChangeWatcher.watch(textarea, "text", watcherListener);  }  // Event listener when binding occurs.  public function watcherListener(event:Event):void {  myTA1.text="binding occurred";  // Use myWatcher.unwatch() to remove the watcher.  }  ]]> </mx:Script> <!-- Define a binding expression_r to watch. --> <mx:TextInput id="textinput" text="Hello"/> <mx:TextArea id="textarea" text="{textinput.text}"/> <!-- Trigger a binding. --> <mx:Button label="Submit" click="textinput.text='Goodbye';"/> <mx:TextArea id="myTA1"/> </mx:Application>

上面的范例中,為Flex數(shù)據(jù)綁定觀察者定義了事件監(jiān)聽器,在這個(gè)事件監(jiān)聽器中使用了單個(gè)參數(shù)來包含事件對象。事件對象的數(shù)據(jù)類型由被觀察的屬性所決定。每個(gè)可綁定的屬性會不同的
事件類型以及相關(guān)的事件對象。有關(guān)確定事件類型的更多信息見“使用Bindable 元數(shù)據(jù)標(biāo)記”。

感謝各位的閱讀!關(guān)于“Flex數(shù)據(jù)綁定怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

名稱欄目:Flex數(shù)據(jù)綁定怎么用
網(wǎng)站地址:http://sd-ha.com/article8/ggepip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化、微信小程序、網(wǎng)站建設(shè)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)