溫馨提示×

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

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

Flex綁定機(jī)制是什么

發(fā)布時(shí)間:2021-12-04 15:59:40 來(lái)源:億速云 閱讀:94 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹Flex綁定機(jī)制是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Flex綁定機(jī)制

在我們了解了事件機(jī)制后,那么理解Flex綁定就不難了,F(xiàn)lex綁定其實(shí)也是事件機(jī)制的運(yùn)用。

1.什么是Flex綁定

Flex綁定機(jī)制的原理就是事件,在被Flex綁定的對(duì)象上增加了改變事件的監(jiān)聽(tīng),一旦某個(gè)被Flex綁定對(duì)象改變后,就會(huì)分發(fā)一個(gè)“propertyChange”事件(默認(rèn)的,也可以改變成自己定義的事件),在其他組件中,會(huì)有propertyChange的事件監(jiān)聽(tīng),當(dāng)捕捉到該事件后,則會(huì)去更新組件的屬性并顯示。

Flex綁定的作用在于,將Flex中的變量、類(lèi)、方法等與組件的值進(jìn)行Flex綁定。例如,一個(gè)變量如果被Flex綁定后,那么引用該變量的組件的相關(guān)屬性也會(huì)發(fā)生改變。我們用一個(gè)實(shí)例來(lái)表示

<?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx=http://www.adobe.com/2006/mxmllayout="absolute"xmlns:comp  > <mx:Script> <![CDATA[  importmx.controls.Alert;  [Bindable]  privatevarisSelected:Boolean;  privatefunctionclickHandler(e:MouseEvent){  //Alert.show(e.currentTarget.toString());  isSelected=isSelected?false:true;//這句話的意思是如果isSelected為true,改變它為false,  如果它為false,改變它為true;  Alert.show(isSelected.toString());  }  ]]> </mx:Script> <mx:Buttonidmx:Buttonid="testBtn"click="clickHandler(event)"label="測(cè)試"/> <mx:CheckBoxxmx:CheckBoxx="60"selected="{isSelected}"/> </mx:Application>

上述程序的效果就是,當(dāng)點(diǎn)擊button時(shí),button不是直接改變checkbox的選中狀態(tài),而是改變isSelected這個(gè)變量,由于isSelected是被Flex綁定了的,那么會(huì)關(guān)聯(lián)的改變CheckBox的選中狀態(tài)。

這樣看起來(lái)有些多此一舉,完全可以直接改變checkbox的selected屬性,我只是為了演示一下效果。如果說(shuō)你的checkbox是動(dòng)態(tài)構(gòu)造的上百個(gè),你不會(huì)去一個(gè)個(gè)的改變他吧。

◆因此,我們多數(shù)會(huì)將一個(gè)數(shù)據(jù)源進(jìn)行Flex綁定聲明,這樣引用了這個(gè)數(shù)據(jù)源的控件,比如datagrid,在數(shù)據(jù)源發(fā)生了改變時(shí),即使你不重新設(shè)置dataProvider,列表的數(shù)據(jù)也會(huì)刷新。當(dāng)然,還有很多應(yīng)用等待你去嘗試。

如果這個(gè)代碼中取消了[Bindable]的聲明,會(huì)怎么樣?isSelected不會(huì)改變了嗎?

isSelected會(huì)改變,我們alert出來(lái)的結(jié)果也會(huì)顯示結(jié)果改變了,但是checkbox的選擇狀態(tài)不會(huì)改變,因?yàn)楫?dāng)一個(gè)組件由創(chuàng)建到最終顯示出來(lái)時(shí)是經(jīng)過(guò)很多方法的,比如addChild,commitProperties,updateDisplayList等,updataDisplayList則是類(lèi)似刷新顯示效果一樣的方法。

僅僅改變屬性,而不去更新顯示效果那么組件不會(huì)因?yàn)閷傩缘母淖兌l(fā)生任何變化。

Flex綁定機(jī)制的原理也是利用的事件分發(fā),更復(fù)雜的Flex綁定有待你去自己發(fā)現(xiàn)了。

以上是“Flex綁定機(jī)制是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI