关闭

flex WebService, AsyncToken用法

154人阅读 评论(0) 收藏 举报
分类:
进入主题先了解下wsdl文档提供的信息,在日常开发中,不可能手工分析wsdl的文档信息,绝大多数发完Web服务的组织都会提一份文档,描述需要发送的参数和将要收到内容,还会告诉使用者可以调用那些方法在flex开发总继承web服务很简单往往需要几行代码....但无论是那种方式都要配置发送的参数和处理要返回值的方法...这就需要我们略懂一些wsdl的文档中到底定义的那些内容,已定义的方法,可参数尤其是参数在flex定义中要用的 
flex WebService 使用 
flex WebService AsyncToken使用 

flex WebService 使用 
先过一遍wsdl提供的信息: 
 

按照上图提示一步一步向上看 
wsdl的文档详细讲解参见: 
http://daoexception.iteye.com/blog/510122 
1.flex mxml中使用webService 

 

1.flex ActionScript中使用webService 

 


flex WebService AsyncToken使用 
Responder () 构造函数 

public function Responder(result:Function, fault:Function) 

使用指定的处理函数构造 responder 的实例。 

参数  result:Function — 成功完成请求时应调用的函数。  
  
fault:Function — 请求完成但出错时应调用的函数。  

使用时:token.addResponder(myResponder); 

Flex代码  收藏代码
  1. <mx:Script>  
  2.     <![CDATA[  
  3.         import mx.rpc.AsyncToken;  
  4.         import mx.rpc.Responder;  
  5.         import mx.rpc.events.ResultEvent;  
  6.         import mx.rpc.soap.LoadEvent;  
  7.         import mx.rpc.AbstractOperation;  
  8.         import mx.rpc.soap.WebService;  
  9.         import mx.rpc.events.FaultEvent;  
  10.         import mx.controls.Alert;  
  11.         import mx.rpc.soap.WebService;  
  12.         private var ws:WebService;  
  13.         private var responder:mx.rpc.Responder;  
  14.         private var wsdl:String="http://localhost:8989/WebServiceDemo/services/WebServiceDemo?wsdl";  
  15.         private function initFunc():void  
  16.         {  
  17.             ws=new WebService();  
  18.             ws.wsdl = wsdl;  
  19.             ws.requestTimeout = 300;  
  20.             if (ws.canLoadWSDL())   {  
  21.                 ws.loadWSDL();  
  22.             }  
  23.             var token:AsyncToken = ws.example(txtWord.text,null);  
  24.             var da:mx.rpc.Responder=new mx.rpc.Responder(Response_Result, Response_Fault);  
  25.                 /**  
  26.              * var da:mx.rpc.Responder=new mx.rpc.Responder 当你读到这块时会认为  
  27.              *  new mx.rpc.Responder 是个多余的写法 简写成 var ...=new Responder...  
  28.              * 可是在flah.net.Responder 也有同样的类名而且是默认导入的....只能这样声明  
  29.              * 不信可以试var da:mx.rpc.Responder=new Responder(Response_Result, Response_Fault);  
  30.              * 当光标放在 new Responder 提示的类型却是 flash.net.Responder....  
  31.              **/  
  32.             token.otherMessage = "myTestMethod Failed";//添加自定义属性  
  33.             token.addResponder(da);  
  34.         }  
  35.         private function Response_Result(e:ResultEvent):void{  
  36.             var resultStr:String;  
  37.             var otherMessage:String;  
  38.             ws.getOperation("example");//webservie有多个方法时时根据 getOperation()中的name参数获取对应的方法  
  39.             resultStr=e.token.result.toString();// token result   
  40.             txtResult.text=resultStr;  
  41.             otherMessage=e.token.otherMessage;//获取自定义属性  
  42.             Alert.show("Web Service AsyncToken result "+otherMessage,"success");  
  43.         }  
  44.           
  45.         private function Response_Fault(e:FaultEvent):void  
  46.         {  
  47.             Alert.show(e.fault.message,"Web Service  Response Error");  
  48.         }  
  49.     ]]>  
  50.    </mx:Script>  



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:677次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档