热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->flash 
站内搜索:
使用Flash Remoting实现Flex与ColdFusion通信
作者:Flying 来源:RIA爱好者 整理日期:2007-10-8

     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. 浏览选择Web应用的根目录,输入根URL路径,在上下文根(路径)中填写Web应用的虚拟路径。

  1. 输入工程名,使用工程的默认路径。

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

默认的输出文件夹bin在当前工程的根目录下,一般需要修改。使用了Flash Remoting技术的Flex工程最后发布文件时必须选择在服务器上下文根(路径)的子目录中,而调用了Flash Remoting服务的Flash输出文件时路径可以随意。

  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="tutorials.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组件的服务路径:tutorials.remoting.Services

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

二、服务器端:

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

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

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

相关文章