日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Flex數(shù)據(jù)綁定的四種方式

本文和大家重點討論一下Flex數(shù)據(jù)綁定的幾種方式,在Flex中,F(xiàn)lex數(shù)據(jù)綁定主要有四種方式,分別為:"{}"綁定表達(dá)式、[Bindable]綁定符號、標(biāo)簽和BindingUtils動態(tài)綁定,下面一一對這四種Flex數(shù)據(jù)綁定方式進(jìn)行詳細(xì)介紹。

10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有旅順口免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

現(xiàn)在數(shù)據(jù)庫或是某個文件里有一些數(shù)據(jù)需要顯示在界面上該怎么辦呢?我們的目的就是將這些數(shù)據(jù)設(shè)法放到界面上去可以顯示出來,這個將數(shù)據(jù)放到界面上去的過程可以叫住Flex數(shù)據(jù)綁定。

在Flex應(yīng)用中程序中,F(xiàn)lex數(shù)據(jù)綁定的實際是借助事件機制來完成的,當(dāng)目標(biāo)使用Flex數(shù)據(jù)綁定的時候,目標(biāo)對象就會監(jiān)聽數(shù)據(jù)源對象的某一固定事件。當(dāng)數(shù)據(jù)源發(fā)生變化時,數(shù)據(jù)源會派發(fā)改變事件通知目標(biāo)對象更新數(shù)據(jù)。實際開發(fā)中我們不需要去關(guān)注具體的實現(xiàn)過程,這個過程Flash/Flex會自動去完成。

在Flex中,F(xiàn)lex數(shù)據(jù)綁定主要有四種方式,分別為:"{}"綁定表達(dá)式、[Bindable]綁定符號、標(biāo)簽和BindingUtils動態(tài)綁定,下面一一對這四種Flex數(shù)據(jù)綁定方式進(jìn)行詳細(xì)介紹。

一、"{}"綁定表達(dá)式

Flex開發(fā)中,"{}"綁定表達(dá)式的應(yīng)用是最為常見的,簡單、方便。好比ASP.NET中的"<%%>"一樣的功效。這里我就簡單介紹下,在Flex下怎么使用"{}"綁定表達(dá)式來綁定數(shù)據(jù)。如有這樣一個簡單的需求,我們定義一個變量,通過"{}"綁定表達(dá)式將變量的值綁定到文本框或是按扭等類似的UI組件上,變量定義如下:

 
 
 
  1. 1 
  2. 2
  3. 3[Bindable]  
  4. 4internalvartext:String="嗨,這是通過\"{}\"表達(dá)式綁定的!";  
  5. 5]]> 

如上定義了一個字符串的變量text,我們通過"{}"綁定表達(dá)式將其綁定在UI組件上呢?如下:

 
 
 
  1. 1 
  2. 2 
  3. 3 

簡潔、簡單、方便且適用。OK,已經(jīng)學(xué)到手了,那下面繼續(xù)看看另一種綁定使用方式--綁定方法返回值。例如需要將一個方法的返回值通過"{}"綁定表達(dá)式進(jìn)行Flex數(shù)據(jù)綁定,讓其在UI組件上呈現(xiàn)該怎么做呢?如下方法定義:

 
 
 
  1. 1privatefunctionBindText():String  
  2. 2{  
  3. 3return"通過\"{}\"表達(dá)式綁定方法!";  
  4. 4} 

其實和上面一樣,直接將"{}"里的變量改為方法便OK,如下代碼段:


如上便完成了對方法的綁定,既將BindText()方法的值綁定在了Label組件上。#p#

二、[Bindable]綁定符號

[Bindable]綁定符號在上面就已經(jīng)出現(xiàn)過了,他的使用和作用也很容易掌握。如上示例,我們的目的是將定義的變量值綁定在UI組件上,如果要實現(xiàn)這個功能,直接將定義的變量通過"{}"綁定表達(dá)式進(jìn)行Flex數(shù)據(jù)綁定是不能完成功能的,我們必須為所定義的變量標(biāo)記[Bindable]。在Flex中,只有標(biāo)記有[Bindable]的數(shù)據(jù)源才能進(jìn)行Flex數(shù)據(jù)綁定(函數(shù)除外,上面示例中也證實了這一點),當(dāng)然也可以是其他的數(shù)據(jù)源(xml,數(shù)據(jù)庫,文件等不同地方不同類型的數(shù)據(jù)源)。

上面這樣使用確實很簡單,但還是需要更加深入的了解[Bindable]。當(dāng)指定了[Bindable]的數(shù)據(jù)源發(fā)生改變的時候,仍然是通過所監(jiān)聽的事件方法來處理的“通知”,默認(rèn)為"propertyChange"事件。如之前定義的變量text,那么完整的定義應(yīng)該如下所示:

1[Bindable(event="propertyChange")]
2internalvartext:String="嗨,這是通過\"{}\"表達(dá)式綁定的!";
“propertyChange”事件為默認(rèn)事件,通常我們只需要使用簡寫形式[Bindable]就OK了。除此之外還需要注意兩點(這里就不做介紹,在后續(xù)文章里我會詳細(xì)介紹):

1、[Bindable]標(biāo)簽用于函數(shù)時,只能在setter和getter方式定義的函數(shù)前使用,這種綁定稱之為函數(shù)級綁定。

2、[Bindable]標(biāo)簽用于公有類時,這個類的所有公共變量,setter和getter方式定義的函數(shù)都可以用于綁定。這種綁定稱為對象級綁定。

三、標(biāo)簽

標(biāo)簽也是使用非常頻繁的Flex數(shù)據(jù)綁定方式。到底怎么個用法呢?下面以兩個小示例使用不同的數(shù)據(jù)源來進(jìn)行Flex數(shù)據(jù)綁定演示。首先用標(biāo)簽定義一個數(shù)據(jù)源(標(biāo)簽就相當(dāng)于的定義一個臨時數(shù)據(jù),這里不做詳細(xì)介紹,不清楚它的作用的朋友請查閱相關(guān)資料學(xué)習(xí))。標(biāo)簽定義數(shù)據(jù)源如下:

 
 
 
  1. 1 
  2. 2 
  3. 3 
  4. 4ActionScript3.0 
  5. 5張三 
  6. 7 
  7. 8FlashCS3 
  8. 9李四 
  9. 10 
  10. 11 
  11. 12 

如上定義的數(shù)據(jù)源,通過標(biāo)簽來進(jìn)行Flex數(shù)據(jù)綁定是很簡單的,如下代碼段:

 
 
 
  1. 1 
  2. 2 
  3. 3  
  4. 4 
  5. 5 

標(biāo)簽可以用來定義XML式的數(shù)據(jù)源,另外還可以通過編程的方式定義數(shù)據(jù)源或從數(shù)據(jù)庫、文件或各種數(shù)據(jù)服務(wù)接口來獲取數(shù)據(jù)源,下面是使用xml的數(shù)據(jù)源定義:

 
 
 
  1. 1privatevarxml:XML= 
  2. 2 
  3. 3ActionScript3.0 
  4. 4張三 
  5. 6 
  6. 7FlashCS3 
  7. 8李四 
  8. 10 

綁定xml對象的數(shù)據(jù)和通過標(biāo)簽定義的數(shù)據(jù)源沒什么區(qū)別,詳細(xì)如下代碼塊:

 
 
 
  1. 1 
  2. 2 
  3. 3 
  4. 4 

#p#

四、BindingUtils與動態(tài)綁定

在Flex數(shù)據(jù)綁定中,動態(tài)綁定主要是通過BindingUtils類提供的兩個靜態(tài)方法來實現(xiàn)。該類位于包mx.binding.utils下,它提供了bindProperty()和bindSetter()兩個靜態(tài)方法來實現(xiàn)數(shù)據(jù)的動態(tài)綁定。

bindProperty()方法根據(jù)名稱就可以看出大概意思,綁定屬性。那實際開發(fā)中我們應(yīng)該怎么應(yīng)用他呢?其實很簡單,一句話概括就是:將xx的YY屬性綁定到AA的BB屬性。更清楚的理解這句話的意思見下面代碼片段:

 
 
 
  1. 1 
  2. 2 
  3. 3 
  4. 4
  5. 5importmx.binding.utils.BindingUtils;  
  6. 6  
  7. 7privatevarmyName:String="張三";  
  8. 8  
  9. 9internalfunctiononClick():void  
  10. 10{  
  11. 11BindingUtils.bindProperty(nameText,"text",btn,"label");  
  12. 12}  
  13. 13]]> 
  14. 14 
  15. 15 
  16. 16 
  17. 17 

這段代碼很簡單,在界面上分別放置了輸入組件和一個按扭組件,然后定義了一個字符串(String)類型的變量myName,***通過按扭的單擊事件將按扭的"label"屬性綁定到輸入組件的"text"屬性上。其實onClick()方法里的代碼和下面這一句代碼是完全等價的:

 
 
 
  1. 1this.nameText.text=this.btn.label; 

bindSetter()方法的使用也很簡單,該Flex數(shù)據(jù)綁定方法綁定數(shù)據(jù)需要與setter類似的方法結(jié)合,將外部傳遞進(jìn)去的參數(shù)進(jìn)行方法委托實現(xiàn)數(shù)據(jù)的動態(tài)綁定,拿上面將按扭顯示值綁定到文本輸入組件的值的示例來說,只需要定義一個setter的方法,該bindProperty()方法為bindSetter()方法既可,詳細(xì)見下面代碼片段:

 
 
 
  1. 1 
  2. 2 
  3. 3 
  4. 4
  5. 5importmx.binding.utils.BindingUtils;  
  6. 6  
  7. 7privatevarmyName:String="張三";  
  8. 8  
  9. 9internalfunctiononClick():void  
  10. 10{  
  11. 11//BindingUtils.bindProperty(nameText,"text",btn,"label");  
  12. 12BindingUtils.bindSetter(bindText,btn,"label");  
  13. 13}  
  14. 14  
  15. 15internalfunctionbindText(text:String):void  
  16. 16{  
  17. 17this.nameText.text=text;  
  18. 18}  
  19. 19]]> 
  20. 20 
  21. 21 
  22. 22 
  23. 23 
  24.  

 【編輯推薦】

  1. 解析三大Flex數(shù)據(jù)綁定方式
  2. Flex數(shù)據(jù)綁定的概念解讀
  3. Flex數(shù)據(jù)綁定中難以發(fā)現(xiàn)的無聲錯誤
  4. FlexBuilder3.0與Eclipse3.4的***結(jié)合
  5. 剖析Flex DataGrid分頁控件的兩種分頁形式用法

網(wǎng)站題目:Flex數(shù)據(jù)綁定的四種方式
本文來源:http://www.dlmjj.cn/article/dheggeo.html