Flex
的Remoting采用AMF通信协议(Flex3已经升级为了AMF2了),这种协议最大的一个优势就是由于采用了二进制的传输方式,其传输效率非常
高,可以让我们在复杂的网络环境获得良好的性能。根据国外一个很牛的老外写的在线测试工具,AMF协议的效率要远远高于webservice以及采用
JSON格式承载数据的AJAX方式。
Flex的另一种方式通信就是PollingChannel,它的特点就是它可以多批次的去服务端取数据,而不是长时间保持连接直到所有数据取回之后才关闭我们宝贵的HTTP连接。
首先我们在WEB-INF下面的Class目录中添加一个JAVA类,如下:
public
class
HelloWorld {
private
String
userSaid;
public
String
repeat(
String
said)
{
this
.userSaid
= "Reply from server: "
+ said;
return
this
.userSaid
;
}
public
String
sayHello(
)
{
Date
now = new
Date
(
)
;
return
"Hello World "
+ now;
}
}
然后我们打开Remoting-Config.xml文件,在service中添加一个目的地指向我们服务端的JAVA类(destination节点),具体如下:
<service
id
="remoting-service"
class
="flex.messaging.services.RemotingService"
>
<adapters>
<adapter-definition
id
="java-object"
class
="flex.messaging.services.remoting.adapters.JavaAdapter"
default
="true"
>
</adapter-definition>
</adapters>
<destination
id
="Hello"
>
<properties>
<source>
HelloWorld</source>
</properties>
</destination>
<default-channels>
<channel
ref
="my-amf"
>
</channel>
</default-channels>
</service>
添
加完成之后,我们打开一个flex页面,在上面添加一个RemotObject标签,当然你也可以在可视化状态下拖一个上去,然后添加我们刚才在
HelloWorl类中定义的两个方法,并在AS代码块中定义两个回调方法用来异步接收返回的结果或发生的异常,具体代码如下:
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
backgroundcolor
="#FFFFFF"
viewsourceurl="srcview/index.html"
>
<mx:remoteobject id="myservice"
fault="faultHandler(event)"
showbusycursor="true"
destination="Hello"
>
<mx:method name
="sayHello"
result="resultHandler(event)"
>
<mx:method name
="repeat"
result="resultHandler(event)"
>
</mx:method>
<mx:script>
<!–[
CDATA[
import
mx.managers
.CursorManager
;
import
mx.rpc
.events
.ResultEvent
;
import
mx.rpc
.events
.FaultEvent
;
private
function
faultHandler(
fault:FaultEvent)
:void
{
CursorManager.removeBusyCursor
(
)
;
result_text.text
= "code:n"
+ fault.fault
.faultCode
+ "nnMessage:n"
+ fault.fault
.faultString
+ "nnDetail:n"
+ fault.fault
.faultDetail
;
}
private
function
resultHandler(
evt:ResultEvent)
:void
{
result_text.text
= evt.message
.body
.toString
(
)
; // same as: evt.result.toString();
}
]
]
–>
</mx:script>
<mx:button
x="250"
y="157"
label="sayHello"
width
="79"
click="myservice.getOperation(’sayHello’).send();"
>
<mx:button
x="250"
y="187"
label="Repeat"
click="myservice.getOperation(’repeat’).send(myText.text); "
>
<mx:textarea x="10"
y="36"
width
="319"
height
="113"
id="result_text"
>
<mx:label x="10"
y="10"
text
="Result:"
>
<mx:textinput x="82"
y="187"
id="myText"
text
="Sent to Server"
>
</mx:textinput>
</mx:label>
</mx:textarea>
</mx:button></mx:button></mx:method></mx:remoteobject></mx:application>
做好之后,激动人心的时刻来临了,
F11运行,现在你就可以尽情的与服务端发消息了。注意,JAVA类的序列化与反序列化对我们来说都是透明的,这一切都是FLEX与Blazeds为我们做的。这就是它们带给我们的好处,让我们将重点放在业务逻辑与用户更好的操作性与体验上。
分享到:
相关推荐
Flex是Adobe公司推出的一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。这种技术允许开发者创建具有高度交互性和动态视觉效果的Web应用,提供比传统...
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...
本资料大全包含了多个重要的Flex学习资源,如Flex白皮书、Flex Cookbook以及Flex编程指南,这些都是深入理解Flex开发不可或缺的文献。 1. **Flex白皮书**: Flex白皮书是Adobe官方发布的技术文档,通常包含Flex...
Flex是Adobe公司开发的一种富互联网应用(Rich Internet Application,RIA)框架,主要用于构建运行在浏览器上的交互式应用程序。Flex以其强大的MXML和ActionScript编程语言,以及基于Flash Player或Adobe AIR运行时...
Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...
【标题】"记事万年历flex源码"所涉及的知识点主要集中在Adobe Flex技术和日历应用程序开发上。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA)。它允许开发者使用MXML和ActionScript来创建...
Flex是开源的、高度可移植的词法分析器生成器,专门用于创建处理文本输入流的解析器。这个“flex-2.6.0.tar.gz”文件是一个针对Flex 2.6.0版本的源码压缩包,适用于Unix/Linux类操作系统。在Linux环境中,我们通常会...
Flex是由Adobe公司开发的一种开放源码的富互联网应用程序(RIA)框架,主要用于构建和部署跨平台、跨浏览器的互动用户界面。本教程基于Flex官方文档,旨在为开发者提供中文版的详细学习指南,帮助理解并掌握Flex的...
Flex是开源的、高度可移植的词法分析器生成器,用于创建处理结构化文本或二进制文件的扫描器。这个"flex-2.6.4.tar.gz"文件是Flex 2.6.4版本的源代码压缩包,遵循GNU General Public License (GPL)发布。在Linux和类...
Flex API 是一种软件开发接口,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA),它由Adobe公司开发,用于提供强大的图形和交互性功能。在本文中,我们将深入探讨Flex API的核心概念、主要...
Flex是Adobe公司推出的一种用于构建富互联网应用(RIA, Rich Internet Applications)的开源框架,它主要基于ActionScript编程语言和MXML标记语言。这个“Flex实战项目”可能是一个使用Flex技术构建的实际应用示例,...
### Flex3与Flex4对比分析 #### 一、概述 随着技术的发展,Adobe Flex平台也在不断进化以满足日益增长的应用需求。本文旨在详细介绍Flex3与Flex4之间的主要区别,特别是Flex4相较于Flex3的新功能与改进之处。通过...
Flex是Adobe公司开发的一种开放源代码的富互联网应用程序(RIA)框架,主要用于构建具有动态图形、交互性丰富的Web应用。Flex应用程序通常使用ActionScript编程语言,并基于Flash Player或Adobe AIR运行时环境。Java...
Flex Web工作流程图是一种利用Adobe Flex技术创建的用于设计和展示流程、工作流或系统交互的可视化工具。Flex是一款强大的开发框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA),它基于...
这个名为"flex帮助文档--(flex学习文档)"的压缩包文件包含了关于Flex的详细学习资料,尤其是针对初学者或者希望深入理解Flex的开发者。 1. **Flex的基本概念** Flex是一个基于MXML和ActionScript的开源框架,...
Flex布局是一种强大的CSS布局模式,它允许开发者在不考虑元素的具体尺寸的情况下,创建灵活且响应式的用户界面。这个“flex特效 不错的flex样式生成器”是一个工具,可以帮助开发者更轻松地生成适用于Flex布局的CSS...
在IT行业中,FLEX(Flexible Learning Environment eXtension)是一种基于Adobe Flash技术的开发框架,主要用于构建富互联网应用程序(RIA)。本篇文章将详细介绍FLEX的安装与配置过程,帮助初学者快速上手。 首先...
标题和描述都聚焦于对比Flex3与Flex4之间的差异,这是一种Adobe系统提供的开源框架,用于构建跨平台的桌面和移动应用程序。Flex4,其代号为Gumbo,是在Flex3的基础上进行了重大升级,旨在改进用户体验和开发效率。...
Flex是Adobe公司开发的一种用于创建富互联网应用程序(RIA)的开放源代码框架,它主要基于ActionScript编程语言和MXML标记语言。这个“Flex中文教程”显然是为了帮助初学者掌握Flex开发技术,通过配合使用Flex...
Linux下的Flex+Bison Flex和Bison是Linux下两种常用的生成工具,分别用于词法分析和语法分析。下面将详细介绍如何使用Flex和Bison在Linux环境下生成Parser。 一、Flex简介 Flex是Lex在GNU中的实现,是一种词法...