Flash Remoting ActionScript 3.0简介
作者:Flying 日期:2007-05-24
自从使用Fluorine实现Flex与.NET通信发表后,有不少网友给我来信,想知道怎样利用使用Fluorine实现Flash CS3与.NET通信。因为我近来工作忙,虽安装Flash CS3已经好长时间了,却一直没写这篇教程,请支持本站的网友多多包涵!
Flash Remoting ActionScript 3.0是我个人提出的,主要是相对于Flash Remoting ActionScript 1.0&2.0,核心技术为:ActionScript 3.0 + AFM3 /AFM0。
一、先看代码:
import flash.net.NetConnection;
import flash.net.Responder;
import flash.events.ErrorEvent;
//创建一个NetConnection对象
var nc:NetConnection = new NetConnection();
//设置AMF版本
nc.objectEncoding = ObjectEncoding.AMF3;
//打开到服务器的连接
var gatewayURL:String = "http://localhost:8088/flashservies/Gateway.aspx";
nc.connect(gatewayURL);
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
submit_btn.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(evt:MouseEvent) {
//创建一个新的 Responder 对象,并将该对象传递给 NetConnection.call()
var resp:Responder = new Responder(onSucceed,onFailed);
//调用服务器端的远程方法
nc.call("tutorials.remoting.HelloWorld.sayHello",resp,txtName.text);
}
//声明处理报告状态或错误的的侦听器函数
function netStatusHandler(evt:NetStatusEvent):void {
if (evt.info.code =="NetConnection.Call.Failed") {
result_txt.text= "连接远程服务失败";
}
}
//声明处理调用成功的侦听器函数
function onSucceed(re:String):void {
result_txt.text = re;
}
//声明处理调用失败的侦听器函数
function onFailed(fe:Object):void {
result_txt.text = "调用远程服务方法失败";
}
后台代码还是一样,见使用Fluorine实现Flash与.NET通信。这是最终的效果。
二、说明
- 我们使用Responder 对象作为NetConnection.call的传递参数,以处理来自与特定操作成功或失败相关的服务器的返回值。
- 我们使用NetStatusEvent事件对象来返回连接状态,并将其将作为参数传递给事件侦听器,它只有一种类型的状态事件:NetStatusEvent.NET_STATUS。NetStatusEvent事 件对象的info属性用来描述对象的状态或错误情况的属性,它有code 和level 属性,此处我们利用code可能的字符串值来判断网关Url是否正确。不过,我觉得Adobe的工程师好像将NetConnection.Connect.Failed和NetConnection.Call.Failed代码属性弄反了,大家可以参考一下帮助文件。
三、现在我们再来对比一下Flash Remoting ActionScript 1.0&2.0与Flash Remoting ActionScript 3.0。
- 目前Flash cs 3不支持Macromedia Flash Remoting组件的安装,但将Flash Remoting ActionScript 1.0/2.0类放在安装Flash 9安装目录的Classes文件夹中,也还是支 持Flash Remoting ActionScript 1.0/2.0语法的。大家可以试一试!
- 在Flash Remoting ActionScript 1.0中,我们使用NetConnection对象创建远程连接,使用NetServices对象来定义网关Url并创建远程服务;Flash Remoting ActionScript 2.0除了这种用法外,更推荐使用Service对象来实现远程服务;在Flash Remoting ActionScript 3.0中,使用的仍然是NetConnection对象,用法与Flash Remoting ActionScript 1.0相似。
- ActionScript 3.0中推荐使用AMF3,可以通过NetConnection对象的objectEncoding属性来设定。
上一篇: ActionScript 3.0基础——Point 对象
下一篇: 设置TextArea的内容为不能被选择
文章来自: 本站原创
Tags: Actionscript3 FlashRemoting
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
发表评论


|
| 183.17.140.58 |
| 取消审核 |
回复]