Flex与.NET互操作:基于WebService的数据访问.doc
文本预览下载声明
Flex与.NET互操作(二):基于WebService的数据访问(上)
?????Flex提供了mx:WebService、mx:HTTPService和mx:RemoteObject标签来直接访问远程数据,这用于与各种不同语言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易.
?????本文以.NET平台下C#语言开发的WebService作为远程数据源,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。三个标签的使用方法基本上是一样,这里就以mx:WebService标签为例进行介绍。
?????首先看看如下代码块:
1?????mx:WebService?id=dataService?2?????????wsdl=http://localhost/FlashFlex/DataWebService.asmx?wsdl3?????????useProxy=false4?????????mx:operation?name=HelloWorld?result=onSuccess(event)?fault=onFault(event)/5?????????mx:operation?name=GetBook?fault=onFault(event)?result=onObjectSuccess(event)/6?????/mx:WebService
?
?????wsdl属性指定到要访问的WebService的wsdl地址既可,其中定义了两个操作标签(mx:operation),分别对应于WebService中定义的WebMethod方法。result属性标记访问WebService方法成功后的处理函数;fault则相反,指定于访问失败的处理函数。以上两个mx:operation对应于WebService的WebMethod方法如下:
?1?????///?summary?2?????///?返回字符串?3?????///?/summary?4?????///?returns/returns?5?????[WebMethod]?6?????public?string?HelloWorld()?7?????{?8?????????return?Hello?World;?9?????}10?11?????///?summary12?????///?返回一个简单对象13?????///?/summary14?????///?returns/returns15?????[WebMethod]16?????public?Book?GetBook()17?????{18?????????return?new?Book19?????????{20?????????????Id?=?1,21?????????????Name?=?三国演义,22?????????????Author?=?罗贯中,23?????????????Price?=?10024?????????};25?????}
?
?????如上便是WebService方法定义和在Flex的客户端(mxml)通过mx:WebService标签来访问WebService的完整流程,下面我们来看看在Flex的客户端怎么去调用WebService所定义的方法:
?1?mx:Script?2?????![CDATA[?3?????????import?mx.controls.Alert;?4?????????import?mx.rpc.events.FaultEvent;?5?????????import?mx.rpc.events.ResultEvent;?6??????????7?????????/**?8??????????*?向WebService发起请求--调用HelloWorld方法,dataService为mx:WebService的id?9??????????*?*/10?????????internal?function?onRequest():void11?????????{12?????????????dataService.HelloWorld();13?????????}14?????????15?????????/**16??????????*?请求成功处理返回结果17??????????*?*/18?????????internal?function?onSuccess(evt:ResultEvent):void
显示全部