Flex數(shù)據(jù)綁定的概念解讀
本文和大家重點學習一下Flex數(shù)據(jù)綁定的概念,F(xiàn)lex數(shù)據(jù)綁定的這個特性非常實用,當程序要處理大量數(shù)據(jù),而且要保持數(shù)據(jù)的實時更新。
Flex數(shù)據(jù)綁定的概念
從字面上看,“綁定”表示將若干個物體捆綁在一起。使用Flex數(shù)據(jù)綁定時,F(xiàn)lex會把把一個對象的數(shù)據(jù)復制,提供給另一個對象使用,提供數(shù)據(jù)一方的稱為數(shù)據(jù)源對象,(PHP博客,www.phpcq.com)使用數(shù)據(jù)的一方稱為目標對象,當數(shù)據(jù)源對象發(fā)生改變時,目標對象的數(shù)據(jù)會自動更新,而不需要我們再編寫代碼去強制更新,這就是綁定的含義。Flex數(shù)據(jù)綁定的這個特性非常實用,當程序要處理大量數(shù)據(jù),而且要保持數(shù)據(jù)的實時更新,保持數(shù)據(jù)同步往往會令開發(fā)者大費周折,如今不用為這類問題而發(fā)牢騷了。
實際上,綁定的實現(xiàn)也是借用事件機制來完成。當對目標使用了Flex數(shù)據(jù)綁定后,目標對象就會偵聽數(shù)據(jù)源對象的某一固定事件,在以后的過程中,源對象發(fā)生變化時,數(shù)據(jù)源會派發(fā)改變事件,通知目標對象更新的數(shù)據(jù)。,(PHP博客,www.phpcq.com)只不過,這一事件流程都是由Flex自動處理。
◆綁定適用于各種類型的對象,只要參加綁定源對象的數(shù)據(jù)和目標對象的數(shù)據(jù)格式相同,就可以使用。下面幾種情況中Flex數(shù)據(jù)綁定使用得比較頻繁:
1,將webservice或remoting方式得到的Flex數(shù)據(jù)綁定給控件
2,把控件Flex數(shù)據(jù)綁定給后臺通信的對象,發(fā)送給服務器端
3,后臺返回數(shù)據(jù)和數(shù)據(jù)模型進行綁定
4,組件或?qū)ο髮傩缘腇lex數(shù)據(jù)綁定
◆在綁定中作為數(shù)據(jù)源對象,該對象必須支持綁定,也就是,對象有派發(fā)改變事件的能力。Flex的組件提供了綁定接口,當然,并不是組件所有的屬性及方法都可以用來作為數(shù)據(jù)源,一般來說,組件的重要屬性都可用來作為綁定中的數(shù)據(jù)源。
盡管Flex數(shù)據(jù)綁定功能非常強大,但并不是所有情況下都能使用,例如,有些情況下,數(shù)據(jù)的更新需要按照嚴格的先后順序,不可同時更新,這時***通過程序來設置數(shù)據(jù)改變。另外,一旦開始了綁定,每次源數(shù)據(jù)的改變都會導致目標對象的數(shù)據(jù)更新,而有時希望目標對象只在一定情況下才做出反應,,(PHP博客,www.phpcq.com)這時,綁定就不是一個好的解決辦法。
【編輯推薦】
- Flex數(shù)據(jù)綁定陷阱
- Flex數(shù)據(jù)綁定技巧
- Flex數(shù)據(jù)綁定中難以發(fā)現(xiàn)的無聲錯誤
- FlexBuilder3.0與Eclipse3.4的***結合
- 剖析Flex DataGrid分頁控件的兩種分頁形式用法