`
碧海山城
  • 浏览: 190683 次
  • 性别: 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的安装和开发环境的建立、MXML 语法简介、使用容器控制界面布局、使用组件处理数据和交互、使用行为对象和动画效果、...使用、Flex 2.0新特性实例开发、Flex与外部的数据通信、Flex程序设计等...

    flex 第一步 源码 使用组件处理数据和交互

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

    Flex第一步 源码

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

    Flex第一步光盘源码

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

    flex 数据库留言本 源码

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

    Flex企业应用开发实战源代码

    接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和工作原理,并通过迭代的方式完整地演示一个真实的Flex企业级应用的开发全过程,实战性极强...

    Air Flex Sqlite通信

    一个AIR读写Sqlite的示例.外部库文件,实现了较多的功能.

    flex3的cookbook书籍完整版dpf(包含目录)

    第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 1.3节.创建ActionScript项目 1.4节.在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex...

    flex 教程总汇(新)!

    ECMAScript 规范草案的一部分)。 第 11-26 章, Flash Player API 介绍在特定于 Adobe Flash Player 9 的包和类中实 现的重要功能,其中包括事件处理、网络和通信、文 件输入和输出、外部接口、应用程序安全模型等...

    AMF数据分析器_V22

    功能: 支持AS3的ByteArray序列化...支持Flex外部化类的AMF编码、解码。 支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF文件)。 为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    S32K144_DEMO-O.rar

    名称:CQU_S32K144_DEV开发板/评估板---综合...* (5) 运用FlexCAN总线通信功能,CAN0发送数据(500Kbps),CAN1中断接收数据(500Kbps) * (6) 运用LPIT定时器超时中断功能,每定时时间到(1s)读取A/D转换结果并通过CAN_0发送

    通信与网络中的基于Flex技术的无线应用系统平台设计

    本设计的研究依托原有平台,根据当前B/S架构下技术的发展方向,选用Flex作为系统升级的主要技术方式,使之在达到原有系统功能的基础上,提升用户体验,同时解决原系统在不同浏览器平台上差异性问题。  1.引言  ...

    SWF(ActionScript3.0)与JavaScipt(JS)通信示例

    今天花了一些时间整理出来了Swf 文件与JavaScript通信的示例,在此贴出供大家参考。 在ActionScript3.0与JavaScipt通信的时候需要用到ExternalInterface类。 “ExternalInterface”类是外部API,在ActionScript和...

    大话PKG解包工具

    功能: 支持AS3的ByteArray序列化...支持Flex外部化类的AMF编码、解码。 支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF文件)。 为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    ActionScript开发技术大全

    18.1.2位图图像与位图数据 370 18.1.3创建位图对象 370 18.1.4载入位图对象 371 18.2处理位图数据 371 18.2.1位图复制 372 18.2.2像素处理 376 18.2.3位图填充 378 18.2.4生成噪点 379 18.2.5图像滚动 381 18.2.6...

    L3-Projet-JS-MERN-Projet-ressources

    用于与API通信: 首先,在src / plugins / axios文件中,我们通过提供特别的默认URL或进行调用以及标头的定义来进行设置。 然后,在src / services /文件中,我们调用axios来定义程序所需的功能。 引导带 flex ...

    集成运放参数测试仪[2005年电子大赛一等奖.doc

    SPC E061A主要实现用户接口界面(键盘扫描、液晶显示、数据打印以及其他服务进程的调度 )、AD转换以及测量参数(Vio Iio Kcmr Avd BWG Tr)计算、与上位机通信等方面的功能。上位机主要实现向下位机发送测量指令、...

    ActionScript开发人员指南中文版

    第章:与其他FlashPlayer和AIR实例通信 关于LocalConnection类 在两个应用程序之间发送消息 连接到不同域中的内容和AIR应用程序 第章:与AIR中的本机进程通信 本机进程通信概述 启动和关闭本机进程 与本机进程通信 本...

    Spring攻略(第二版 中文高清版).part2

    2.14 使用应用事件进行通信 93 2.14.1 问题 93 2.14.2 解决方案 93 2.14.3 工作原理 94 2.15 在Spring中注册属性编辑器 96 2.15.1 问题 96 2.15.2 解决方案 96 2.15.3 工作原理 97 2.16 创建自定义...

    Spring攻略(第二版 中文高清版).part1

    2.14 使用应用事件进行通信 93 2.14.1 问题 93 2.14.2 解决方案 93 2.14.3 工作原理 94 2.15 在Spring中注册属性编辑器 96 2.15.1 问题 96 2.15.2 解决方案 96 2.15.3 工作原理 97 2.16 创建自定义...

Global site tag (gtag.js) - Google Analytics