久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 開發 > Flex > 正文

Flex Data Binding詳解

2024-09-12 17:51:28
字體:
來源:轉載
供稿:網友
Data BindIng 什么時候發生:

1.在綁定源屬性值發生改變時發生。
2.在綁定源發出initialize事件時綁定發生一次。

讓屬性具有可綁定功能:

一般的,只要在屬性前加上
[Bindable] 或
[Bindable(event="eventname")]
元標記即可
注意:
如果沒有標出觸發綁定的事件,正如[Bindable],Flex會自動為綁定加上propertyChange事件,當源數據發生變化時,Flex將自動派發該事件,觸發數據綁定。如果修改后數據和源數據“===”也就是全等,那么Flex將不會觸發數據綁定。
如果標出的觸發綁定的事件,正如[Bindable(event="eventname")],那么在源數據發生改變的時候,必須dispatch出該事件才能觸發數據綁定。不論修改后數據和源數據是否全等,Flex都將會觸發數據綁定,需要自己編程控制,例如:
<mx:Script>
<![CDATA[
[Bindable(event="hhhh")]
private var ss:String="aaa";

private function doTest():void
{
ss="bbb";
if(ss!=="aaa") / /判斷和源數據是否相等,不相等則觸發綁定
this.dispatchEvent(new Event("hhhh"));
}
]]>
</mx:Script>
<mx:Text text="{ss}"/>
<mx:Button click="doTest()"/>
如果沒有this.dispatchEvent(new Event("hhhh"))這句,那么你點擊按鈕是沒有設么作用的。 另外當申明自定義觸發事件時,用ChangeWatcher來監控其變化,發現雖然目的源值變了,但是ChangeWatcher卻監控不到變化,同樣ChangeWatcher也監控不到非共有變量的變化。關于ChangeWatcher,下面會提到。
綁定函數――Functions,對象――Object,數組――Arrays
函數:
你可以在{}中直接使用函數。例如:<mx:Text text="{Matn.random()*ss}"/>
上面這個沒有什么好講的,關于函數綁定下面這個比較重要:
<mx:Script>
<![CDATA[
public var ss:String="aaa";

[Bindable(event="hhhh")]
private function gg():String
{
return ss;
}

private function doTest():void
{
ss=Math.random().toString();
this.dispatchEvent(new Event("hhhh"));
}
]]>
</mx:Script>

<mx:Text text="{gg()}"/>
<mx:Button click="doTest()"/>
這樣給函數加一個[bindable],便使函數具有綁定功能,但是如果不申明自定義觸發事件,只能在組件初始化時綁定一次,點擊以上按鈕是沒有什么作用的。大家可以自己試試。

還有getter和setter函數,比較重要,給getter或setter函數加上[bindable],用不著兩個都加,加一個就可以了,例如:
<mx:Script>
<![CDATA[
public var ss:String="aaa";

[Bindable]
public function get gg():String
{
return ss;
}

public function set gg(value:String):void
{
ss=value;
}

private function doTest():void
{
gg=Math.random().toString();
this.dispatchEvent(new Event("hhhh"));
}
]]>
</mx:Script>

<mx:Text text="{gg}"/>
<mx:Button click="doTest()"/>
同樣能達到綁定效果,如果只有一個getter方法,那么要想實現數據綁定,就需要申明自定義觸發事件了,大家可以自己試試。
對象:
對象綁定最重要的是搞清楚怎么申明才能使其屬性具有綁定功能,例如:
申明對象 NonBindableObject
//[bindable] 先注釋掉這行,測試
public class NonBindableObject extends Object
{

public function NonBindableObject() {
super();
}

public var stringProp:String = "String property";

public var intProp:int = 52;
}
綁定
<mx:Script>
<![CDATA[
[Bindable]
public var myObj:NonBindableObject = new NonBindableObject();
[Bindable]
public var anotherObj:NonBindableObject =
new NonBindableObject();
public function initObj():void {
anotherObj.stringProp = 'anotherObject';
anotherObj.intProp = 8;
}
]]>
</mx:Script>
<mx:Text id="text1" text="{myObj.stringProp}"/>
<mx:Text id="text2" text="{myObj.intProp}"/>
<mx:Button label="改變 myObj.stringProp"
click="myObj.stringProp = 'new string';"/>

<mx:Button label="改變 myObj.intProp"
click="myObj.intProp = 10;"/>

<mx:Button label="Change myObj"
click="myObj = anotherObj;"/>
如果在申明對象時沒有在類前加上[bindable]標簽,那么該對象的所有屬性是不能被綁定的,也就是說當對象屬性發生變化時,不會觸發綁定,所以點擊前兩個按鈕都是沒有用的,只有當該對象本身發生變化時,才能夠觸發綁定,正如第三個按鈕的操作。
現在取消第一行的注釋,使對象屬性可綁定,那么再點前兩個按鈕試試。只要給對象加上[Bindable]元標記,那么會使該對象的所有公有屬性――public和擁有getter和setter方法的屬性具有綁定功能。
數組:
如果把數組作為綁定對象,那么最好使用ArrayCollection對象,因為當使用ArrayCollection對象的一些API來操作數組會觸發數據綁定,如:ArrayCollection.addItem(), ArrayCollection.addItemAt(), ArrayCollection.removeItem(), and ArrayCollection.removeItemAt()方法 ,不然要直接使用Array的話,只用當Array本身發生變化時才觸發數據綁定,當數組中某一屬性發生變化時是不會觸發數據綁定的。例如:
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var myAC:Array =["One", "Two", "Three", "Four"];

[Bindable]
public var myAC2:Array =["One1", "Two1", "Three1", "Four1"];
]]>
</mx:Script>
<mx:Text id="text1" text="{myAC[0]}"/>
<mx:Text id="text2" text="{myAC.getItemAt(0)}"/>
<mx:Button id="button1"
label="改變某一屬性"
click="myAC[0]='new One'"/>
<mx:Button id="button2"
label="改變對象"
click="myAC=myAC2"/>
當使用[]形式來申明數組時,必須使用ArrayCollection的API方法來實現數據綁定,所以當你點擊第一個按鈕時,text2發生了改變,而text1沒有。
數據綁定除了用[Bindable]標簽來申明以外,也可以用<mx:Binding/>組件和ActionScript實現。
用<mx:Binding/>,例如:
<mx:binding source="text1.text" destination="text2.text"/>
<mx:binging source="text2.text" destination="text1.text"/>
<mx:TextInput id="text1"/>
<mx:TextInput id="text2"/>
source為綁定源,destination為目的源,按上面的寫法,不論是text1還是text2發生變化,都會引起對方的變化。細心的你也許會想這不會引起死循環嗎?答案是否定的,不會引起死循環。我想應該是Flex內部的機制已經優化了這種情況,讓其只觸發一次。
用ActionScript來綁定:
1.使用bindProperty()。
bindProperty(site:Object, prop:String,host:Object, chain:Object,commitOnly:Boolean = false):ChangeWatcher,例如:
var myc:ChangeWatcher=BindingUtils.bindProperty(text2,"text",text1,"text");
即當text1的值發生變化時text2也跟著變,site為目的對象,prop為目的屬性,host為綁定源,china為綁定源屬性鏈――關于屬性鏈下面再講,commitOnly默認為False,即不管是確認事件還是未確認事件都將觸發綁定,而為True時,只有確認事件才能觸發綁定,這個一般用不到,和Flex自身的事件機制有關,如果為false的話,當數據改變時將觸發兩次綁定事件,當為True時,只觸發一次,自己可以用bindSetter方法來做測試。當不想綁定時可以用myc.unwatch()方法來解除綁定。

2.使用bindSetter()。
bindSetter(setter:Function, host:Object, chain:Object,commitOnly:Boolean = false):ChangeWatcher,例如:
var myc:ChangeWatcher=BindingUtils.bindSetter(change,text1,"text",true);
private function change(str:String):void
{
text2.text=str;
}
change就是當綁定源發生變化時所觸發的函數,其他參數都一樣。
3.使用ChangeWatcher.watch()。
同樣可以用ChangeWatcher.watch方法來監控對象屬性的變化,非常有用。
watch(host:Object, chain:Object,handler:Function,commitOnly:Boolean = false):ChangeWatcher,例如:
var myc:ChangeWatcher=ChangeWatcher.watch(text1,"text",change);
private function change(e:Event):void
{
text2.text=text1.text;
}
這里的Event和綁定數據所定義的觸發事件有關,你可以用所有事件的父類Event來表示。

注意:
as主要是通過mx.binding.utils.BindingUtils 這個類來實現數據綁定,用MXML和as實現數據綁定有以下幾點不同:
1.當使用AS做數據綁定時,bindProperty()或 bindSetter()方法中不能使用AS代碼,這和MXML是不同的, 可以用bindSetter() 方法來申明一個綁定處理函數。
2.當使用AS做數據綁定時,同樣不能使用EX4語法,也就是說不能直接使用XML解析語法了。
3.當使用AS做數據綁定時,在屬性鏈中不能使用任何函數和數組。
4.MXML具有更好的錯誤提示和警告功能。
最后來講講屬性鏈。
屬性鏈就是bindProperty()和 bindSettet()等方法中的chain參數所表示的對象, 有時也許綁定源并不只是text1.text這樣的簡單形式,也可以是類似于user.name.text1.text,那么就存在一個關系鏈的問題,如果這條鏈中的某一項發生了改變,會不會觸發綁定呢?答案是如果你想讓其改變其中的某一項都能觸發數據綁定,那么這條鏈的每個元素必須是可綁定的。對于上面的這種形式,可以這樣使用bindProperty方法:
bindProperty(text2, "text", this, ["user", "name","text1","text"])。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
97香蕉碰碰人妻国产欧美 | 亚洲欧美国产日韩综合| 欧美精品黑人性xxxx| 一区精品在线观看| 免费人成在线观看视频播放| 在线播放国产一区二区三区| 成人激情免费电影网址| 国产又粗又猛又爽视频| 久久久久成人精品免费播放动漫| 亚洲欧洲韩国日本视频| 国产成人精品网| 久久久影院一区二区三区| 精品精品国产高清a毛片牛牛 | 少妇一级淫免费放| 久久久之久亚州精品露出| 国产黑丝在线一区二区三区| 日韩免费一区二区三区| 精品国产百合女同互慰| 日韩1区2区3区| 色播五月激情五月| 日韩免费av片在线观看| 91在线看国产| 亚洲视频一区在线播放| 欧美日韩福利在线| 最新国产精品拍自在线播放 | 51精品免费网站| 亚洲.欧美.日本.国产综合在线| 亚洲欧美综合区自拍另类| 亚洲欧美综合网| 免费视频网站在线观看入口| 日韩在线综合网| 福利视频一区二区三区| 欧美手机在线视频| 国产精品一区2区| 久久久精品视频免费| 国产一区二区片| 4438全国成人免费| 欧美日韩成人高清| 中文字幕精品—区二区四季| 国产精品人人爽| 亚洲少妇18p| 亚洲高清精品中出| 国产精品丝袜久久久久久不卡| 色综合中文字幕| 精品一区二区免费看| 精品人妻一区二区免费| 亚欧精品在线| 神马影院午夜我不卡影院| 91精品久久久久久久久久久久久久| 亚洲人成77777在线观看网| 亚洲人亚洲人成电影网站色| 国产精品一区二区在线观看不卡 | 国产一区二区三区视频| 亚洲激情欧美激情| 成人av免费观看| 人人精品人人爱| 欧美特级特黄aaaaaa在线看| 一级片视频免费| 中文字幕视频网站| 久久久免费高清视频| 一本色道久久综合亚洲精品图片 | 亚洲国产综合自拍| 国产一区二区无遮挡| 国产精品黄色影片导航在线观看| 欧美韩国理论所午夜片917电影| 这里只有精品在线播放| 在线国产精品播放| 色噜噜狠狠狠综合曰曰曰 | 中文字幕欧美一区| 欧美激情中文字幕| 欧美高清在线视频| 亚洲图片你懂的| 国产亚洲综合色| 国产日产欧美一区二区三区 | www.天堂av.com| 亚洲成熟女性毛茸茸| 天天干天天操天天爱| 中国老头性行为xxxx| 欧美日韩中文视频| 人妻在线日韩免费视频| xxxxx99| 亚洲一区高清| av动漫在线看| 亚洲天堂美女视频| www.av成人| 波多野结衣家庭主妇| 亚洲精品久久久久久无码色欲四季| 日本精品999| 91麻豆国产自产在线观看| 中文字幕亚洲精品在线观看| 色视频成人在线观看免| 午夜精品久久久久久不卡8050| 欧美日韩综合不卡| 日韩色av导航| 成人精品在线观看| 色中文字幕在线观看| 亚洲免费看av| 国产亚洲精品久久久久久无几年桃| 无码人妻黑人中文字幕| 日本午夜精品视频在线观看| www激情久久| 日韩欧美一级片| 91精品国产91久久久久久吃药| 91精品久久久久久久久不口人| 超碰97在线看| 久久久午夜精品福利内容| 国产又大又黄又粗| 福利一区福利二区| 日本精品免费观看高清观看| 九九久久国产精品| 日韩美女一区| 中国极品少妇videossexhd| 亚洲专区在线播放| 国产精品女同一区二区三区| 日韩免费在线观看| www日韩av| 日韩精品视频一二三| 动漫av一区二区三区| 午夜一区二区三区四区| 国产成人av一区二区三区在线观看| 欧美三级电影网站| 成人精品久久av网站| 中文字幕在线视频一区二区| 国产精品色综合| 天天影视涩香欲综合网| 咪咪色在线视频| 免费中文字幕在线| 亚洲三级电影网站| 奇米成人av国产一区二区三区| av无码精品一区二区三区| 国产精品国产三级国产aⅴ| 亚洲高清免费一级二级三级| 国产欧美精品在线| 免费成人深夜夜行网站| 老司机精品久久| 在线免费观看日本欧美| 日韩久久在线| 国产黄色免费观看| 欧美亚洲高清一区二区三区不卡| 亚洲sss综合天堂久久| 久久久久久久久久97| 国产精品久久久久毛片软件| 国内外成人免费激情在线视频网站| 天天摸天天舔天天操| 国产69精品一区二区亚洲孕妇| 欧美极品xxxx| 91视频在线免费| 久久久久久久久久久电影| 热久久免费国产视频| 精品人妻一区二区三区四区| 国产精品白丝在线| 亚洲伊人成综合成人网| 91麻豆免费视频网站| 亚洲最色的网站| 免费欧美一级视频| 成人精品gif动图一区| 成人高清视频观看www| 一区精品在线观看| 久久综合伊人77777蜜臀| 欧美特黄一级片| 无码人妻精品一区二区三区不卡 | 国产啪精品视频| 日本黄色动态图| 久久亚洲精华国产精华液| 91丨九色丨国产在线| 久久精品免费av| 欧美日韩久久久久久| 精品无码国产一区二区三区av| 久久精品国产亚洲av麻豆蜜芽| 91精品久久久久久久久99蜜臂| 亚洲中文字幕无码一区二区三区| 手机看片一区二区| 66m—66摸成人免费视频| 久久精品在线观看视频| 日韩欧美在线免费| 国产天堂在线播放| 看电视剧不卡顿的网站| 96精品视频在线| 成人无码精品1区2区3区免费看| 亚洲成人综合网站| 国产特级黄色大片| 日韩久久一区二区| 精品一区二区三区视频日产| 欧美视频一二区| 久久99视频精品| 久久中文字幕无码| 亚洲深夜福利视频| a天堂视频在线观看| 欧美日韩高清一区| 色婷婷国产精品免| 日韩精品高清在线| 偷偷色噜狠狠狠狠的777米奇| 91porny在线| 亚洲小视频在线| 久久精品国产亚洲AV无码麻豆| 亚洲成人久久一区| aaa黄色大片| 一本久久综合亚洲鲁鲁五月天 | 在线成人精品视频| 一区二区三区在线视频免费| 无码人妻精品一区二区三区在线| 中文字幕一区二区在线播放| 日韩精品免费播放| 91高清在线观看| 免费成人深夜夜行p站| 亚洲精品videossex少妇| 免费看一级一片| 国内自拍欧美激情| 日本视频一区二区三区| 亚洲精品在线视频| 久久久久久久国产精品毛片| 日韩中文娱乐网| 人成网站在线观看| 亚洲高清123| 在线看国产一区二区| 希岛爱理中文字幕| 国产精品电影网站| 高清国产午夜精品久久久久久| 欧美精品在欧美一区二区| 欧美日韩免费在线观看| 国产97免费视频| 在线观看欧美www| 免费视频一区二区| 91国自产精品中文字幕亚洲| 日本成人在线不卡视频| 妺妺窝人体色777777| 日韩一级黄色大片| 一区二区三区www污污污网站| 国产视频一区二区三区四区| 亚洲高清不卡在线观看| 青青草免费av| 国产精品激情自拍| 国产成人免费视频网站高清观看视频| 日本中文字幕网址| 亚洲欧美制服中文字幕| 精品在线免费视频| 中文字幕国产高清| 国内精品久久久久久| 国产精品美女一区二区在线观看| 黄色a一级视频| 99超碰麻豆| 欧美三级三级三级爽爽爽| 一级特黄aaaaaa大片| 热久久视久久精品18亚洲精品| 国产mv日韩mv欧美| 玖草视频在线观看| 91精品黄色| 欧美系列在线观看| 国产91免费在线观看| 天堂av.com| 国产精品免费久久久| 黑人极品videos精品欧美裸| 中文字幕第一页在线播放| 日本成人中文字幕在线| 欧美一级在线播放| 欧美熟乱第一页| 日韩成人精品在线观看| 日本婷婷久久久久久久久一区二区| 色噜噜狠狠色综合中国| 免费国产黄色片| 欧美日韩高清丝袜| 一区二区三区在线视频看| 亚洲天堂影视av| 午夜伊人狠狠久久| 日韩高清一区二区| 992在线观看| 欧美日韩一区二区在线免费观看| 成人av番号网| 精品福利一二区| 一区二区三区在线观看国产| 日本精品一二区| 国产在线观看免费视频软件| 丁香六月激情网| 成人在线播放av| 亚洲天堂成人在线| 亚洲成人av一区二区三区| 精品黑人一区二区三区在线观看| 日韩乱码人妻无码中文字幕久久| 日韩亚洲欧美精品| 国产mv免费观看入口亚洲| 亚洲天天在线日亚洲洲精| 精品久久久久久久中文字幕| 成人一区二区三区| 好吊色在线视频| 亚洲精品色午夜无码专区日韩| 久久久影院一区二区三区| 97在线观看视频| 尤物yw午夜国产精品视频| 在线观看亚洲精品视频| 亚洲三级在线观看| 懂色av一区二区夜夜嗨| 精品毛片在线观看| wwwwww在线观看| 亚洲午夜精品久久久久久高潮| 亚洲人辣妹窥探嘘嘘| 亚洲自拍偷拍一区二区三区| 国产精品国产精品| 国产欧美精品久久久| 亚州精品天堂中文字幕| 中文字幕久精品免费视频| 日韩午夜在线影院| 欧美久久久久中文字幕| 在线观看免费一区| 国产精品嫩草影院av蜜臀| 精品亚洲免费视频| 奇米精品一区二区三区四区| 日韩视频第二页| 国产精品一区二区免费在线观看| 免费一级特黄毛片| 黄色在线视频网| 国产女人18毛片水真多18| 国产一二三四五区| 国产精品成人av久久| 无码人妻丰满熟妇区五十路| 亚洲天堂777| 在线免费一级片| 人人爽香蕉精品| 99精品国产一区二区三区不卡| 国产精品久久久久一区二区三区| 亚洲一卡二卡三卡四卡五卡| 欧美无人高清视频在线观看| 日韩欧美一区二区久久婷婷| 国产香蕉精品视频一区二区三区 | 波多野结衣xxxx| 久久丫精品国产亚洲av不卡| 九九热国产精品视频| 精品国产xxx| 美女视频免费一区| 国产三区在线成人av| 欧美日韩中文一区| 欧美人与性动交| 精品国产一区二区三区日日嗨| 国产青草视频在线观看| av av在线| 亚洲精品一区二区二区| 成人美女视频在线看| 亚洲一区在线视频观看| 91精品国产色综合久久不卡电影| 欧美成人一区二区三区片免费| 国产午夜精品理论片a级探花| 国产成人精品免费久久久久| 2025韩国大尺度电影| 天天插天天射天天干| 99久久久国产精品无码免费| 97精品超碰一区二区三区| 色乱码一区二区三区88| 精品自拍视频在线观看| 日韩欧美视频一区二区三区四区| 韩国三级丰满少妇高潮| 一级久久久久久| 国产精品欧美一级免费| 日韩精品在线视频观看| 国产精品三区四区| 国产伦精品一区二区三区88av| 波多野结衣家庭主妇| 国产suv精品一区二区33| 成人av网站大全| 一区二区三区 在线观看视| 99精品视频播放| 中国a一片一级一片| 91福利区一区二区三区| 国产三区精品| 国产亚洲精品码| 黑人巨大精品欧美一区免费视频 | 一区二区在线不卡| 日批视频免费在线观看| 狠狠色狠狠色综合日日五| 成人激情视频网| www欧美com| 亚洲va欧美va人人爽| 91精品免费| 日韩三级视频在线| 天天亚洲美女在线视频| 岛国视频一区免费观看| 粉嫩精品久久99综合一区| 久久免费偷拍视频| 国产精品欧美日韩久久| 9.1片黄在线观看| 色综合视频在线观看| 亚洲精品乱码久久久久久蜜桃91 | 欧美无人区码suv| 中文字幕在线一区二区三区| 成人综合av网| 免费又黄又爽又猛大片午夜| 欧美大片在线观看一区| 成人免费观看视频在线观看| 日本久久一级片| 中文字幕国产亚洲| 无码人妻一区二区三区一| 久久久久国产精品厨房| 91精品国产综合久久久久久蜜臀 | 成人免费观看男女羞羞视频| 欧美巨乳美女视频| 给我免费观看片在线电影的| 亚洲三级在线免费观看| 欧美三级华人主播| 日本韩国免费观看| 色综合久久久888| 日韩一区二区三区四区视频| 欧美亚洲精品一区| 欧美二区在线视频| 久久久国产精品麻豆| 国产女主播一区二区| 天堂中文在线资源| 26uuu亚洲伊人春色| 国产又粗又猛又爽又| 俺去啦;欧美日韩| 免费在线观看国产精品| 亚洲午夜久久久影院| 久久av红桃一区二区禁漫|