`
碧海山城
  • 浏览: 192636 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Flex(一)----Flex与外部数据的通信

阅读更多
1. HTTPService

A. 位于mx.rpc.http包中,主要用来发送HTTP形式的GET和POST请求。如果包含参数,需要使用request对象
<mx:HTTPService id=”srv” url=”list.jsp” method=”POST”>
		<mx:request>
			<username>aaa</username>
           <password>aaa</ password >
         </mx:request>
</mx:HTTPService>


建立HTTP请求后,调用HTTPService的send方法,如果给send方法附加参数,将覆盖原来的参数

var paras:Object=new Object();
	paras.username=”aaa”;
	paras.password=”aaa”;
	srv.send(paras);



B. 如果要发送XML格式的数据,可以用两种办法
1.     
Var paras:Object=new Object();
		Paras.info=”<info>
<username>校长</username><password>aaaa</password></info>”;
				Srv.send(paras);


2.
<mx:HTTPService id=”srv” url=”list.jsp” method=”POST” contentType=”application/xml”/>


在指定contentType为application/xml就可以发送XML格式的数据了,默认是application/x-www-form-urlencoded

Var xml : XML=<info>
<username>校长</username><password>aaaa</password>
</info>


C. 接收返回的类型有两个属性,一个是result,fault,如股票请求出错,会触发后者

<mx:HTTPService id="loader" url="http://rss.sina.com.cn/news/allnews/sports.xml"
result="completeHandler(event)" showBusyCursor="true" fault="errorHandler(event)"/>



不管返回的是什么格式,都会被HTTPService自动解析成Object类型。如果是XML格式,将被解析成一个树形结构的对象。如果想要得到其他类型的数据,可以修改resultFormat,默认是object。另外还有:

array:如果是XML格式,被转换为数组,如果把HTTPService的makeObjectBindable属性设置为true,打开绑定功能,数组又被转为ArrayCollection类型
xml:
flashvars:数据以name=value的字符串形式返回,用&隔开
text:以字符串返回,不做任何处理
e4x:如果返回XML格式,可以使用E4X语法解析


2.Web Service

WebService对象位于mx.rpc.soap包中,它和HTTPService非常相似,也使用HTTP协议来进行通信,可是运作原理不同。
Web Service(Web服务)的应用广泛,是网络应用程序的标准。从用户角度看,Web Service就是一个应用程序,它向外界暴露能够通过Web进行调用的API集合,用户可以调用这些API来实现某些功能。
Web Service平台遵循统一的标准,定义了应用程序如何在一个Web上实现互操作性。只要符合标准,开发者可以用任何熟悉的语言,在任何平台上开发Web Service。由于各个平台的差异,为了保证数据的跨平台传输,Web Service使用XML来描述数据,使得数据可以自由传递。
Web Service采用WSDL(Web Service描述语言),用来描述Web Service的相关信息极其函数、参数值和返回值。WSDL使用了XML语法,并制定了严格的格式。在WSDL中,包括了Web Service程序的路径,所有所有的函数以及每个函数所要求的参数信息等,通过阅读WSDL文档,可以迅速掌握其使用方法。
<mx: WebService id=”ws” wsdl=”http://www.webservicex.net/TranslateService/asmx?esdl”
		result=”resultHandler(event)”>
		<mx:operation name=”Translate”>
			<mx:request>
				<LanguageMode>ChinessTOEnglish</ LanguageMode>
				<LanguageMode>中文</ LanguageMode>
			</mx:request>
		</mx: operation>
	</mx: WebService>


上面的代码中定义了一个WebService对象,并指定了wsdl文档路径,wsdl属性必须设定。Operation标签表示要调用的函数,name属性就是函数名,request标签,表示要传递的函数参数。同样也是用send方法来执行请求动作。Ws. Translate.send();

捕获返回的数据任然是监听result事件,不过Web Service的返回数据类型总是字符串型,就是说XML数据,也被当作字符串来传送,所以不需要设置格式。



3.Remoting

不管是HTTPSrervice还是Web Service,他们都只支持文本格式的数据通信。在数据量大的时候如果要传递复杂的数据,必须要转换为其他文本格式,比如XML形式,供Flex调用。而Flex获得数据后,又得花时间来把XML数据还原成本来的结构,这样服务端和客户端各自多了一道工序。
这里就可以采用Remoting技术。Remoting使用AMF(全称Action Message Format)二进制信息格式化传递数据。AMF是Adobe开发出来的协议,采用二进制压缩,支持数据序列化和数据反序列化,未SWF文件与Remoting服务端通信提供了一种轻量级的,高效的通信方式。

AMF最大的特色就是可直接将Flash Player的内置对象,例如Object、Array、Date、XML等直接传回服务器端,并且在服务器端自动进行解析成适当的对象,节省了开发时间,由于AMF采用二进制编码,支持高度压缩数据,因此非常适合用来传递大量的资料。数据量越大,Remoting的传输效益就越高,远远超过HTTPService或Web Service。

在使用Remoting技术时,首先客户端将ActionScript数据类型转成AMF格式。服务端接收数据,转换未服务端数据,然后服务端返回数据,客户端收到,将AMF格式转换成ActionScript的数据类型。

AMF从Flash MX时代的AMF0发展到现在的AS3的AMF3。

Mx.rpc.remoting包封装了所有的和Remoting功能相关的对象。其中的RemoteObject对象是客户端实现Remoting通信的关键,它只支持AMF3格式数据。

服务器端,PHP下可以选择AMFPHP,一个完全由PHP写成的服务器模块。Java下,有LCDS(LiveCycle Data Service),以前叫FDS(Flex Data Service)它是付费的,不过也提供单CPU的免费版本下载,少了多CPU的支持。

另外还有BlazeDS,实际上是精简的免费版本LCDS,一般开发只需使用LCDS的RemoteObject功能,而BlazeDS就是实现RemoteObject的Adobe开源免费版本.
分享到:
评论

相关推荐

    FLEX教程-FLEX教程

    - **数据绑定**: Flex 中的一种强大特性,可以自动同步 UI 元素与数据源之间的值。 - **进度条**: 一个常用的 UI 组件,用于表示任务完成的百分比。 - **实现**: - 创建数据模型。 - 在 MXML 中绑定进度条组件与...

    flex-iframe-1.4.1.zip

    2. **安全通信**:通过使用PostMessage API,Flex-Iframe允许父页面与嵌入的iframe之间安全地进行通信,实现数据交换和交互控制。 3. **负载优化**:库中的智能加载策略可以在需要时才加载iframe内容,减少首屏加载...

    Flex4.6-js修正版,之前一版JS无法调用flex,特此纠正

    综上所述,"Flex4.6-js修正版"着重解决了JavaScript与Flex 4.6应用程序之间的通信问题,使得开发者可以更流畅地在两者之间传递数据和调用方法,提升混合开发的效率和体验。通过学习和理解这一交互机制,开发者能够更...

    Flex开发实例--学习必备

    - Flex支持数据绑定,这是一种将UI元素与模型数据关联起来的技术。 - 通过数据绑定,可以自动更新UI以反映模型的变化。 #### 17. 事件对象 - Flex应用程序中的事件处理非常关键。 - 事件对象提供了有关触发事件的...

    flex IFrame控件的配置使用详细过程

    通过IFrame组件,不仅可以在Flex应用中轻松展示外部HTML内容,还可以实现Flex与JavaScript页面之间的双向通信。 ##### 2.2 安装配置 **步骤1:下载IFrame组件** 首先,访问IFrame组件的官方GitHub仓库...

    Flex与处部的数据通信和图表

    【Flex与外部的数据通信】 在Flex开发中,与外部数据通信是至关重要的,这使得Flex应用程序能够从服务器获取和更新实时信息。Flex提供了三种主要的数据通信方式:HTTPService、WebService和Remoting。 **4.1.1 ...

    javascript与flex交互

    在Web开发领域中,JavaScript与Flex的交互是一个非常实用且重要的技术组合。Adobe Flex是一种用于构建和部署丰富的互联网应用程序(RIA)的强大框架,它支持多种客户端环境,包括桌面和移动设备。通过JavaScript与...

    FLEX数据与通讯

    Flex数据与通讯主要涉及如何在Flex应用程序中与其他程序进行数据交换和传输,包括内部数据传输以及与外部服务(如HTTPService和WebService)的交互。下面将详细介绍Flex中数据传输的多种方式及其应用。 ### 21.1 ...

    纯flex网站前台(httpservice、webservice进行数据交互)

    在“纯flex网站前台(httpservice、webservice进行数据交互)”这个项目中,我们主要关注的是如何使用Flex来实现与服务器端的数据通信,这涉及到HTTPService和WebService两种技术。 1. **Flex框架**:Flex提供了一...

    cairngorm构架做的flex-weather倒影(推荐)

    Cairngorm是Adobe Flex中的一种轻量级MVC(Model-View-Controller)设计模式实现,它为Flex应用程序提供了一种结构化的方法,以提高代码的可维护性和可扩展性。Cairngorm框架强调的是组件间的松耦合,通过事件驱动...

    Flex详细文档.pdf

    - **Flex与WebService通信**: 实现Flex应用程序与WebService的通信,支持JSON或XML数据交换。 - **Flex与Ajax交互**: 结合Ajax技术,实现异步数据加载和更新。 #### 六、总结 通过以上内容,我们可以看到Flex不仅...

    Flex项目Google IFrame使用

    5. **ActionScript与IFrame通信**:在Flex中,可以通过ActionScript与IFrame内的JavaScript进行通信,但这需要正确配置事件监听器和数据传递机制。错误的设置可能导致IFrame内容不显示或功能失效。 为了更好地理解...

    Air Flex Sqlite通信

    本示例着重于“Air Flex Sqlite通信”,即如何在Adobe AIR应用中使用Flex与SQLite数据库进行交互。 SQLite是一个轻量级的、自包含的、无服务器的SQL数据库引擎,被广泛用于移动应用和嵌入式系统。在Adobe AIR中,...

    matlab开发-Flex99OEM12CCorrelatorInterface

    3. 驱动程序接口:为了使MATLAB能够与Flex99OEM-12C硬件通信,需要一个驱动程序接口。这可能是一个MATLAB外部接口,如MATLAB的 Mex 文件或者通过MATLAB的COM接口与Windows驱动程序交互。 4. 图形用户界面(GUI)开发...

    使用BlazeDS实现Java和Flex通信

    BlazeDS 是 Adobe 开发的一款开源项目,它提供了一种方式让 Java 后端应用程序与 Adobe Flex 前端应用程序之间进行数据交换和远程通信。BlazeDS 的核心功能包括远程控制(Remoting)和消息传递(Messaging),使得 ...

    flex笔记 flex笔记 flex笔记

    通过分析所提供的标题、描述以及部分代码内容,我们了解到了Flex的一些基本概念和技术细节,包括MXML标记语言、ActionScript脚本语言、数据绑定、网络通信以及Flex SDK版本管理等方面的知识点。Flex作为一种强大的...

    flex 第一步全部源码 实例源码

    Flex简介、Flex的安装和开发环境的建立、MXML 语法简介、使用容器控制界面布局、使用组件处理数据和交互、使用行为对象和动画效果、...使用、Flex 2.0新特性实例开发、Flex与外部的数据通信、Flex程序设计等...

    FlexCAN详解

    FlexCAN(Flexible Controller Area Network)模块是一种实现了CAN(Controller Area Network)协议的通信控制器,即遵循CAN 2.0B协议规范。FlexCAN广泛应用于需要实时处理、可靠通信和成本效益的汽车串口总线系统中...

    Flex4.5 与js,ocx相互调用

    压缩包中的 "Flex-js-activex-相互调用自己做的实例" 文件很可能是包含了一个实际应用示例,展示了如何实现 Flex 4.5 与 JavaScript 和 OCX 控件的交互。这个实例可能包括一个 Flex 项目,其中定义了与 JS 交互的...

    flex3 接受外部参数

    本话题聚焦于Flex 3如何接受外部参数,这是一个关键功能,允许开发者传递数据到Flex应用程序,从而实现更灵活的交互和动态内容。 在Flex 3中,接受外部参数主要通过以下几种方式实现: 1. **URL变量**: 当Flex...

Global site tag (gtag.js) - Google Analytics