使用Flash Remoting实现Flex与ColdFusion通信

哈哈,轉載該篇文章主要用來自己睇傑,無他意,來源:http://www.riafan.com/default.asp

Flash Remoting Service是Flex访问数据的三种方式之一,它没有Flex Data Service那么强大,但是比HTTP Service的效率高。不管是Flex Data Service还是WebORB都需要额外会费,而ColdFusion Flash Remoting Service在ColdFusion  MX 7中内置的,如果我们已经安装有ColdFusion MX 7,就可以直接使用ColdFusion Flash Remoting Service技术了。Flex与ColdFusion Flash Remoting Service的通信实质是Flash Player与Flash Remoting的通信,数据是通过AMF的数据传输方式方式来实现的。Flex 2对于AFM0和AMF3都是支持的。相对于AFM0,AMF3是一种全新的技术,目前还没有技术规范。另一方面,许多开源软件也开始支持AMF3,比如PHPAMFfluorineWebORB for Ruby on Rails以及WebORB for PHP。不过目前还是以ColdFusion Flash Remoting 最为最为正宗。

一、客户端

下面我们就用Flex Builder来用创建本实例所用的简单Flex应用。请大家注意步骤的细节。

  1. 打开Flex Builder,选择File>New>Flex Project>ColdFusion Flash Remoting Service。

  1. 单击Next,设置工程名称(如flashservices),工程路径默认不变。

  1. 修改工程主文件名称(如HelloWorld),设置输出文件的路径。单击“Finish”完成工程的创建。如下图:

默认的输出文件夹bin在当前工程的根目录下,一般需要修改。因为新版的Flash播放器更加限制跨域访问。Flash player 7及以前我们还能在本地访问Flash Remoting Service,Flash player 8也能在编译环境下访问。但在Flex Builder中,即使有编译环境下也不能跨域访问。因此,输出文件夹必须在Web应用的根目录下。

  1. 编写客户端代码:  

 

<? xml version="1.0" encoding="utf-8" ?>
< mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="vertical" >
    
< mx:RemoteObject  id ="cfService"  destination ="ColdFusion"
    source
="flashservices.remoting.HelloWorld"   showBusyCursor ="true"   />
    
< mx:TextInput  id ="txtName" />
    
< mx:Button  label ="Say Hello"  click ="cfService.sayHello(txtName.text)" />
    
< mx:Label  text ="{cfService.sayHello.lastResult}"  fontSize ="18" />
</ mx:Application >

我们此处采用mxml不编写代码的,当然我们也可以用AS3来实现相同的功能。在这个实例中,我们用<mx:RemoteObject>新建了一个remoteObject对象,该对象使我们能访问AMF编码的CF组件HelloWorld的方法方法sayHello。其destination属性为服务器端的真正服务或我们想要调用的对象,该destination可以在services-config.xml或者包含文件中设置。其source属性来指定CF组件的服务路径:flashservices.remoting.Services

接着通过按钮的click事件调用服务器端的服务器方法sayHello,该方法将txtName组件的输入值作主参数。最后将调用成功后返回的结果绑定到label组件来显示。

二、服务器端:

不管是AMF0还是AMF3,服务器端的代码是一样的。请参看使用ColdFusion Flash Remoting开发Flash应用中的后台代码。

运行该程序。效果如下图:

小结:在本实例中,交换的数据都是字符,属于简单型数据类型,其实用HTTP Service应该更合适。Flash Remoting Service的高效主要体现在处理复杂数据上。我们会在以后的教程中陆续介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值