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这个函数中可以获取。

posted @ 2013-09-29 15:11  zwyyj  阅读(466)  评论(0编辑  收藏  举报