21.1.调用Web Services 方法

问题
我该如何调用web service 方法
解决办法
使用mx.rpc.soap.WebService 对象,调用WebService对象方法
讨论
前面已经提到,Flash播放器没有内建web services支持,但是Flex framework 提供了一个解决方案,这一节将讨论如何使用Flex 2 提供的web services解决方案。

Flex framework 包含mx.rpc.soap.WebService,该类可调用web services方法,首先创建WebService对象,如下:
+展开
-ActionScript
var webService:WebService = new WebService( );

+展开
-ActionScript
每个web service都有一个Web服务描述语言(WSDL),通过WebService对象的wsdl属性进行定位:
webService.wsdl = "http://www.rightactionscript.com/webservices/FlashSurvey.php?wsdl";

在调用方法之前,必须先用loadWSDL( ) 方法读取wsdl数据:
+展开
-ActionScript
webService.loadWSDL( );

loadWSDL( ) 方法是异步调用的,因此需要监听是否WSDL数据已经读取完毕,当数据读取完成时WebService 对象会发出mx.rpc.soap.LoadEvent 事件,如:
+展开
-ActionScript
webService.addEventListener(LoadEvent.LOAD, onWSDL);

当WSDL数据读取后,就可以调用WebService对象方法了,WSDL URL 指向真实的web service ,其有个方法叫
+展开
-ActionScript
getAverages( ) :
webService.getAverages( );

远程方法还可接收参数,这跟调用本地方法没什么两样。例如有个远程方法叫takeSurvey( ),接收两个整数参数,调用如下:
+展开
-ActionScript
webService.takeSurvey(10, 15);

注意Web services 方法调用也是异步的,也就是说不一定马上得到返回结果。

加支付宝好友偷能量挖...


评论(0)网络
阅读(130)喜欢(0)flash/flex/fcs/AIR