- 浏览: 30655 次
最新评论
HttpService、WebService、RemoteObject是Flex中使用的三种通信方式,由于RemoteObject对服务器端环境的要求,最常用的还是前两种通信方式。这里仅对Webservice和HttpService这两种方式做简单封转演示。
WebService: package com.sample.Service { import mx.rpc.AbstractOperation; import mx.rpc.events.ResultEvent; import mx.rpc.soap.WebService; import mx.rpc.soap.Operation; import mx.core.mx_internal; use namespace mx_internal; public dynamic class WServiceProxy extends WebService { publicfunction WServiceProxy(destination:String=null,rootURL:String=null) { super(destination,rootURL); } publicfunction GetMethod(FunctionName:String,CallBack:Function=null):AbstractOperation{ var OP:AbstractOperation=this.getOperation(FunctionName); if(CallBack!=null) OP.addEventListener(ResultEvent.RESULT,CallBack); return OP; } override publicfunction getOperation(name:String):AbstractOperation{ var op:Operation = new Operation(this, name); op.asyncRequest = asyncRequest; super.initializeOperation(op as Operation); if(op.wsdlOperation==null){//WSDL加载未完成,则使用基类提供的Operatereturnsuper.getOperation(name); } return op; } /**调用示例 ws=new WebService(); ws.wsdl="http://localhost/ws/webService1.asmx?wsdl "; ws.loadWSDL(); //方法一 无参数型 声明 OP=ws.getOperation("HelloWorld"); OP.addEventListener(ResultEvent.RESULT,ret); OP.send("a1-","B1"); //调用 //方法二 直接使用型 声明 ws.Login.addEventListener(ResultEvent.RESULT,ret1) ; ws.Login("a","b"); * */
HttpService: package com.sample.Service { import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; public dynamic class HServiceProxy { privatevar comm:FwConfig = FwConfig.Instance; privatevar m_url:String; //远程调用地址publicfunction HServiceProxy(destination:String,rootURL:String=null) { if(destination.length>5 && destination.substr(0,5).toLowerCase()=="http:"){ m_url = destination; //全路径 } else{ m_url = "http://127.0.0.1"+destination; //构造url全路径 } } //获取操作方法publicfunction GetMethod(FunctionName:String="Default", CallBack:Function=null,ErrorCallBack:Function=null):HServiceOperate{ var OP:HServiceOperate=new HServiceOperate(m_url,FunctionName); if(CallBack!=null) OP.addEventListener(ResultEvent.RESULT,CallBack); if(ErrorCallBack!=null) OP.addEventListener(FaultEvent.FAULT,ErrorCallBack ); return
HServiceOperate: package com.samle.Service { import mx.collections.ArrayCollection; import mx.rpc.AsyncToken; import mx.rpc.Responder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; import mx.rpc.events.AbstractEvent; import flash.events.EventDispatcher; /** * Dispatched when an Operation invocation successfully returns. * @eventType mx.rpc.events.ResultEvent.RESULT */ [Event(name="result", type="mx.rpc.events.ResultEvent")] /** * Dispatched when an Operation call fails. * @eventType mx.rpc.events.FaultEvent.FAULT */ [Event(name="fault", type="mx.rpc.events.FaultEvent")] public dynamic class HServiceOperate extends EventDispatcher { privatevar m_url:String; //远程调用地址privatevar m_paras:ArrayCollection;//远程调用参数privatevar m_opName:String="Default"; //调用方法publicfunction HServiceOperate(url:String,FunctionName:String=null) { m_url = url; if(FunctionName!=null) m_opName = FunctionName; } //调用publicfunction call(paras:ArrayCollection=null):void { m_paras = paras; var url:String=m_url; var para:String = ParametersAsQueryString; if(para!=null && para.length>0) //参数 url = url+"?"+para; var httpObject:HTTPService = new HTTPService(); //实例化 httpObject.resultFormat = "text";//"xml" ;//"object" //"text";//返回格式 httpObject.url = url; var responder:Responder = new Responder(onSuccess, onError);//回调方法var call:AsyncToken = httpObject.send(); //发送请求 call.addResponder(responder); } //调用成功privatefunction onSuccess(event:ResultEvent):void { dispatchRpcEvent(event); } //调用失败privatefunction onError(event:FaultEvent):void { dispatchRpcEvent(event); } ///参数转换为QueryStringprivatefunction get ParametersAsQueryString():String { var QString:String=""; if(m_paras!=null && m_paras.length>0) { for(var i:int=0;ilength;i++) { QString+=m_paras[i].name+"="+m_paras[i].value+"&"; } QString = QString.substr(0,QString.length-1); } if(m_opName!=null && m_opName!="Default")//添加了命令 { var op:String="op="+m_opName; if(QString.length==0){ QString=op; }else{ QString=op+"&"+QString; } }
发表评论
-
java字符串比较大小
2012-07-06 09:51 770public int compareTo(String a ... -
UltraEdit 正则表达式替换
2012-07-06 09:44 1329UE用于直观简便地处理文本很是强大,用的较多的有列模式以及 ... -
js 正则表达式乱
2012-07-06 09:37 848js正则表达式详解 j ... -
超级面板皮肤及其使用
2012-07-06 09:29 642画出类似于遨游那样的最大化,最小化,关闭,还原按钮的皮肤。 ... -
给自己的网站添加 分享到 新浪微博等各微博和网站功能
2012-07-05 20:44 722把下面的代码插入到你想放置的位置就可以 将此影视分享到: ... -
Flex 遍历组件的实现
2012-07-03 13:42 882Flex有两个阵营组件:spark组件和mx组件,关于sp ... -
Flex 遍历组件的实现
2012-07-03 12:16 710Flex有两个阵营组件:spark组件和mx组件,关于sp ... -
分页组件(引用Super Flex文章)
2012-07-02 10:10 762这套组件 主要是用到了LinkButton和Repeate ... -
修改flex chart中Legend的字体样式
2012-07-02 10:10 734最近在弄FLEX的图表, 发现CHART 中的Legend ... -
as与js相互通信(flex中调用js函数)
2012-07-02 10:10 683Flex中As调用Js的方法是: 1、导入包 (i ... -
实现flex中实现图片平铺
2012-07-02 10:10 933在网页中实现一个图片平铺功能比较简单,只需要设置css样式 ... -
Flex ant out of memory error.
2012-07-02 09:41 616... -
Flex的通信方式(三)――HTTPService_1
2012-07-01 09:29 972MXML代码: HTTPService id=& ... -
Flex HTTPService 跨域访问
2012-07-01 09:29 555Summary: 基于Web 的flex 程序,后台采用的 ... -
使用FLEX的HttpService与ASP.NET进行动态交互之一(转载)
2012-07-01 09:29 537使用FLEX的HttpService ... -
Flex的通信方式(五)――HTTPService_3
2012-07-01 09:29 583public function getuserproc() ... -
RSL编译方式的FLEX站点出现#2046错误
2012-06-30 11:14 455RSL编译方式的FLEX站点出 ... -
什么是Flex?Flex与Flash的区别
2012-06-30 11:14 736什么是Flex?Flex与Flash的区别 2011年07月 ... -
Flex学习终于开工了
2012-06-30 11:14 462Flex学习终于开工了 2011年10月27日 今天是我 ... -
Java开发者如何测验Flex
2012-06-30 11:14 614Java开发者如何测验Flex ...
相关推荐
flex通过Http和WebService与服务器通信交互,交互后台采用java的Struts2做为处理后台.
flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+... 3 flex与webservice交互WebService
本教程旨在演示在帶有ASP.NET的Flex 2+中HTTPService功能的使用。 Adobe Flex中有許多方法可以與ASP.NET(或簡單地說,服務器端語言)進行通信。 HttpService,WebService,WebORB,FluorineFx等。在本教程中,我僅...
flex之低数据量通信实例源码,包括上传、下载、HTTPservice、webservice等
4.1 Flex与处部的数据通信 4.1.1 使用HTTPService 4.1.2 使用WebService 4.1.3 使用Remoting 4.2 Flex图表 4.2.1 使用饼形图呈现数据 4.2.2 使用折线图呈现数据 4.2.3 使用柱形图呈现数据 4.2.4 向图表添加动画 ...
flexdemo示例有兴趣可以看看 1 flex 与普通java类通信RemoteObject 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService
介绍flex的通信方面的知识,有关httpservice,webservice服务相关方面的知识。
三种flex4与Java顺利通信的方式是: flex与普通java类通信RemoteObject; flex与服务器交互HTTPService; flex与webservice交互WebService。 当大家尝试使用flex与普通java类通信时,一般用RemoteObject...
5.2.2 Flex访问WebService 32 6 BlazeDS与服务端通信 33 6.1什么是BlazeDS 33 6.2配置BlazeDS,并使之正常运作 34 6.3创建一个Java项目,用来充当Server 34 6.4配置BlazeDS 35 6.5 新建一个Flex应用程序,测试连接 35 ...
与WebService通信 18.10节. 添加SOAP头到WebSerice请求 18.11节. 解析WeBService的返回的SOAP响应 18.12节. 使用SecureAMFChannel进行AMF的安全通信 18.13节. 通过二进制Socket发送和接收二进制数据 18.14节. ...
在本系列前面几篇文章中分别介绍了通过WebService、HTTPService、URLLoader以及FielReference等组件或类来完成Flex与.NET服务端的通信的相关知识点。