Flex數據訪問和綁定概述
在學習Flex的過程中,難免會遇到Flex數據訪問和綁定問題,這里和大家分享一下他們的概念,Flex使你能在客戶端匯集信息,并提供三種不同的數據服務組件,以滿足對服務提供者進行特定Flex數據訪問的需求。
Flex數據訪問
MacromediaFlex為面向服務器架構(SOA–service-orientedarchitecture)而開發。在這一模型中,應用通過與分散在不同地方的服務進行交互,來完成自己的任務。例如,如果創建一個在線旅行應用,你需要與不同的服務進行交互:全球旅館預定服務,目的信息服務,天氣服務等等。這些服務可能以不同的機制來提供,并且來自不同的地方。Flex使你能在客戶端匯集信息,并提供三種不同的數據服務組件,以滿足對服務提供者進行特定Flex數據訪問的需求:WebService組件,HTTPService組件(一般使用XML通過HTTP進行Flex數據訪問)以及RemoteObject組件。MXML允許你用相應的WebService,HTTPService,andRemoteObject標簽來設置與服務的連接。
Flex數據綁定
在許多語言中,如何在用戶界面控件中顯示后臺數據,是件令人頭疼的事情,而且非常容易出錯。收集用戶在控件中輸入的數據,并傳給遠程服務也常常是件乏味的事情。
Flex的特色之一,就是提供了雙向的Flex數據綁定機制:你可以將用戶界面控件綁定到服務調用的數據結果集上,反過來,也可以將服務的參數綁定到用戶界面控件輸入的值上。
下面是一個簡單的股票報價應用。例子使用了WebService標簽來設置與XMMethods提供的股價web服務進行連接。這個例子闡明了Flex的雙向綁定功能。getQuote方法的symbol輸入參數被綁定到symbolTextInput組件上。quote標簽被綁定到getQute方法的調用結果上。
- <?xmlversionxmlversion="1.0"encoding="iso-8859-1"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.macromedia.com/2003/
- mxml">
- <mx:WebServiceidmx:WebServiceid="wsStock"
- wsdl="http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl">
- <mx:operationnamemx:operationname="getQuote">
- <mx:request>
- <symbol>{symbol.text}</symbol>
- </mx:request>
- </mx:operation>
- </mx:WebService>
- <mx:Labeltextmx:Labeltext="Enterasymbol:"/>
- <mx:HBox>
- <mx:TextInputidmx:TextInputid="symbol"/>
- <mx:Buttonlabelmx:Buttonlabel="GetQuote"click='wsStock.getQuote.send()'/>
- </mx:HBox>
- <mx:Labelidmx:Labelid="quote"fontWeight="bold">{wsStock.getQuote.result}</mx:Label>
- </mx:Application>
圖4.股價應用
實際上,Flex數據綁定機制比傳統的重取/顯示(retrieve/display)方式更勝一籌:在Flex應用中,你可以將任意對象的任意屬性綁定到另一任意對象的任意屬性值上。
【編輯推薦】