自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex DataBinding用法指導(dǎo)

開發(fā) 后端
本文向大家介紹一下Flex DataBindIng的概念,簡(jiǎn)單的說(shuō)就是當(dāng)綁定源屬性發(fā)生變化時(shí),F(xiàn)lex會(huì)把綁定源變化后屬性的值賦給目的物的屬性。

本文和大家重點(diǎn)討論一下Flex DataBinding的概念,F(xiàn)lex DataBindIng簡(jiǎn)單的說(shuō)就是當(dāng)綁定源屬性發(fā)生變化時(shí),F(xiàn)lex會(huì)把綁定源變化后屬性的值賦給目的物的屬性,做到了數(shù)據(jù)同步。

Flex DataBinding詳解

[Bindable]作用

Flex DataBindIng簡(jiǎn)單的說(shuō)就是當(dāng)綁定源屬性發(fā)生變化時(shí),F(xiàn)lex會(huì)把綁定源變化后屬性的值賦給目的物的屬性,做到了數(shù)據(jù)同步。

◆Flex DataBindIng什么時(shí)候發(fā)生:

1.在綁定源屬性值發(fā)生改變時(shí)發(fā)生。

2.在綁定源發(fā)出initialize事件時(shí)綁定發(fā)生一次。

◆讓屬性具有可綁定功能:

一般的,只要在屬性前加上[Bindable]或[Bindable(event="eventname")]

元標(biāo)記即可

注意:

如果沒(méi)有標(biāo)出觸發(fā)綁定的事件,正如[Bindable],F(xiàn)lex會(huì)自動(dòng)為綁定加上propertyChange事件,當(dāng)源數(shù)據(jù)發(fā)生變化時(shí),F(xiàn)lex將自動(dòng)派發(fā)該事件,觸發(fā)數(shù)據(jù)綁定。如果修改后數(shù)據(jù)和源數(shù)據(jù)“===”也就是全等,那么Flex將不會(huì)觸發(fā)數(shù)據(jù)綁定。

如果標(biāo)出的觸發(fā)綁定的事件,正如[Bindable(event="eventname")],那么在源數(shù)據(jù)發(fā)生改變的時(shí)候,必須dispatch出該事件才能觸發(fā)數(shù)據(jù)綁定。不論修改后數(shù)據(jù)和源數(shù)據(jù)是否全等,F(xiàn)lex都將會(huì)觸發(fā)數(shù)據(jù)綁定,需要自己編程控制,例如:

  1. <mx:Script> 
  2. <!--[CDATA[  
  3. [Bindable(event="hhhh")]  
  4. privatevarss:String="aaa";  
  5. privatefunctiondoTest():void  
  6. {  
  7. ss="bbb";  
  8. f(ss!=="aaa")//判斷和源數(shù)據(jù)是否相等,不相等則觸發(fā)綁定  
  9. this.dispatchEvent(newEvent("hhhh"));  
  10. }  
  11. ]]--> 
  12. </mx:Script> 
  13. <mx:Texttextmx:Texttext="{ss}"/> 
  14. <mx:Buttonclickmx:Buttonclick="doTest()"/> 

如果沒(méi)有this.dispatchEvent(newEvent("hhhh"))這句,那么你點(diǎn)擊按鈕是沒(méi)有設(shè)么作用的。另外當(dāng)申明自定義觸發(fā)事件時(shí),用ChangeWatcher來(lái)監(jiān)控其變化,發(fā)現(xiàn)雖然目的源值變了,但是ChangeWatcher卻監(jiān)控不到變化,同樣ChangeWatcher也監(jiān)控不到非共有變量的變化。關(guān)于ChangeWatcher,下面會(huì)提到。

◆Flex DataBinding綁定函數(shù)——Functions,對(duì)象——Object,數(shù)組——Arrays

函數(shù):

你可以在{}中直接使用函數(shù)。例如:<mx:Texttext="{Matn.random()*ss}"/>

上面這個(gè)沒(méi)有什么好講的,關(guān)于函數(shù)綁定下面這個(gè)比較重要:

  1. <mx:Script> 
  2. <!--[CDATA[  
  3. publicvarss:String="aaa";  
  4. [Bindable(event="hhhh")]  
  5. privatefunctiongg():String  
  6. {  
  7. returnss;  
  8. }  
  9. privatefunctiondoTest():void  
  10. {  
  11. ss=Math.random().toString();  
  12. this.dispatchEvent(newEvent("hhhh"));  
  13. }  
  14. ]]--> 
  15. </mx:Script> 
  16. <mx:Texttextmx:Texttext="{gg()}"/> 
  17. <mx:Buttonclickmx:Buttonclick="doTest()"/> 

這樣給函數(shù)加一個(gè)[bindable],便使函數(shù)具有Flex DataBinding綁定功能,但是如果不申明自定義觸發(fā)事件,只能在組件初始化時(shí)綁定一次,點(diǎn)擊以上按鈕是沒(méi)有什么作用的。大家可以自己試試。

還有g(shù)etter和setter函數(shù),比較重要,給getter或setter函數(shù)加上[bindable],用不著兩個(gè)都加,加一個(gè)就可以了,例如:

  1. <mx:Script> 
  2. <!--[CDATA[  
  3. publicvarss:String="aaa";  
  4. [Bindable]  
  5. publicfunctiongetgg():String  
  6. {  
  7. returnss;  
  8. }  
  9. publicfunctionsetgg(value:String):void  
  10. {  
  11. ss=value;  
  12. }  
  13. privatefunctiondoTest():void  
  14. {  
  15. gg=Math.random().toString();  
  16. this.dispatchEvent(newEvent("hhhh"));  
  17. }  
  18. ]]--> 
  19. </mx:Script> 
  20. <mx:Texttextmx:Texttext="{gg}"/> 
  21. <mx:Buttonclickmx:Buttonclick="doTest()"/> 

同樣能達(dá)到Flex DataBinding綁定效果,如果只有一個(gè)getter方法,那么要想實(shí)現(xiàn)數(shù)據(jù)綁定,就需要申明自定義觸發(fā)事件了,大家可以自己試試。

【編輯推薦】

  1. Flex Dataprovider和Data概念解析
  2. Flex必須了解的那些事
  3. 解析Flex ArrayCollection復(fù)制的兩種方式
  4. FlexBuilder3.0與Eclipse3.4的完美結(jié)合
  5. Flex ComboBox和Datagrid組件用法指導(dǎo)

 

 

責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-28 10:38:29

Flex開源框架

2010-07-30 10:02:40

Flex驗(yàn)證控件

2010-07-29 09:44:17

Flex編程

2010-08-05 10:08:06

Flex效果

2010-07-27 13:53:15

Flex ComboB

2010-08-06 10:32:49

Flex數(shù)據(jù)類型

2010-08-13 13:46:04

Flex效果組件

2010-07-28 10:48:48

FlexReport開

2010-08-05 13:44:12

Flex布局

2010-08-05 09:05:14

Flex Button

2010-08-13 11:21:31

Flex渲染器

2010-08-10 14:34:37

QTPFlex

2010-08-10 14:25:42

SilkTestFlex

2010-07-27 14:27:09

FlexArray

2010-08-04 11:23:15

Flex字符串

2010-09-27 15:39:37

JVM監(jiān)控工具

2010-07-23 14:12:14

Perl Hash

2010-07-26 14:45:17

Perl Hash

2010-08-25 10:21:49

CSSmargin

2010-07-29 08:53:24

Flex客戶端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)