北京三维动画 上海建筑动画制作 杭州CG动画制作 天津建筑三维动画 沈阳建筑动画制作 西安建筑虚拟现实 宁波Flash动画制作 深圳卡通动画 天津企业专题片 杭州影视制作
发新话题
打印

Flash Remoting ActionScript 3.0简介

Flash Remoting ActionScript 3.0简介

[这个贴子最后由Flying在 2007/08/17 03:16pm 第 2 次编辑]

原文:[url]http://www.riafan.com/article.asp?id=74[/url]   转载请注明出处:RIA爱好者
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();
//设置该对象编码
nc.objectEncoding = ObjectEncoding.AMF3;
//打开到服务器的连接
var gatewayURL:String = "http://www.riafan.com/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("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 = "调用远程服务方法失败";
}
后台代码还是一样,见[url=http://www.riafan.com/article.asp?id=48]使用Fluorine实现Flash与.NET通信[/url]。这是[url=http://www.riafan.com/flash/helloworld]最终的效果[/url]。
二、说明
1. Responder 该对象在 NetConnection.call() 中使用以处理来自与特定操作成功或失败相关的服务器的返回值。
2. 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。
1. 目前Flash cs 3不支持Macromedia Flash Remoting组件的安装,但将Flash Remoting ActionScript 1.0/2.0类放在安装Flash 9安装目录的Classes文件夹中,也还是支持Flash Remoting ActionScript 1.0/2.0语法的。大家可以试一试!
2. 在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相似。
3. ActionScript 3.0中推荐使用Flash Remoting的核心技术是默认是AMF3,而不是中的AFM0,可以通过NetConnection对象的objectEncoding属性来设定。

TOP

发新话题