在学习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应用中,你可以将任意对象的任意属性绑定到另一任意对象的任意属性值上。
【编辑推荐】