Flex前台和后台WCF服务之间数据的接收与传输
1.首先在flex程序中通过添加webservice,方式是主菜单Data->Connect to WebService,然后输入wsdl文档的地址。如果输入地址后始终添加不进了,或者报错,一般是服务在发布时的配置问题。有些服务添加的时间稍长,慢慢等。
2.添加进来后,会自动生成一个包,在Application标签里添加如xmlns:myservice="services.service1.*" (xmlns:自定义服务名="services.服务名.*")
3.在<fx:Declarations>内添加一个<myservice:Service1 id="ws" showBusyCursor="true"/>。在其后再添加一个<s:CallResponder id="callResponder"/>
关键的是前面三部。
下面上代码:
1 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 2 xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" 3 xmlns:esri="http://www.esri.com/2008/ags" 4 xmlns:myservice="services.service1.*" 5 creationComplete="initApp()" > 6 <fx:Script> 7 <![CDATA[ 8 import mx.controls.Alert; 9 import mx.events.FlexEvent; 10 import mx.rpc.events.FaultEvent; 11 import mx.rpc.events.ResultEvent; 12 13 protected function initApp():void 14 { 15 callResponder.token=ws.GetData(); 16 callResponder.addEventListener(ResultEvent.RESULT,result); 17 callResponder.addEventListener(FaultEvent.FAULT,fault); 18 19 } 20 private function result(event:ResultEvent):void 21 { 22 Alert.show("ok"); 23 } 24 private function fault(event:FaultEvent):void 25 { 26 Alert.show(event.fault.toString()); 27 } 28 ]]> 29 </fx:Script> 30 <fx:Declarations> 31 <myservice:Service1 id="ws" showBusyCursor="true"/> 32 <s:CallResponder id="callResponder"/>
</fx:Declarations> 33 </s:Application>
其中调用服务中的接口就是这句:ws.GetData()
callResponder.addEventListener(ResultEvent.RESULT,result);这句是监听结果的,从服务返回的结果在result这个函数中可以获取。