Flash Remoting with FluorineFx .NET[转]
像我这样的菜鸟能看懂的FluorinerFX .NET简单教程[根据我的配置少许变动]:
(原文:http://fck.name/archives/flash-remoting-with-fluorinefx-net/)
开发环境:安装了FluorineFx的VS2008/2005,Flash CS3 pro。[我的是vs2003 flex3]
服务器端建立:在VS里新建一个空的解决方案,在此解决方案里添加“FluorineFx ServiceLibrary”项目,然后再在此解决方案里添加一个“FluorineFx ASP.NET Web Site”网站项目,在新建立的FluorineFx ServiceLibrary里创建类,提供公共方法,用于提供给客户端的远程调用,Sample.cs类清单如下:
[我的vs2003里新建:FluorineFxWebApplication项目,起名为Flfx,生成项目后,自动生成个Sample.cs类]
using FluorineFx;
namespace Flfx
{
/// <summary>
/// Fluorine sample service.
/// </summary>
[RemotingService("Fluorine sample service")]
public class Sample
{
public Sample()
{
}
public string Echo(string text)
{
return "Gateway echo: " + text;
}
//下面的方法非自动生成
public Array nameList(Array namearr)
{
//对客户端传来的数组进行排序
Array.Sort(namearr);
return namearr;
}
}
}
客户端建立:这里的AS3里有几个重要的类
1、NetConnection类,连接与调用远程应用程序服务器的公共接口(公共方法)
2、Responder类,用于处理服务器的返回值,Responder对象可以拥有两个定义的方法来处理返回的结果:result和status。如果返回的结果为错误,则将调用status处理函数,否则将调用result处理函数来处理远程.net方法返回的结果。
看看文档类FluorineFlash.as的实现:
import flash.display.Sprite;
import flash.events.Event;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
import flash.net.Responder;
public class FluorineFlash extends Sprite {
private var nc:NetConnection;
private var rp:Responder;
private var names:Array;
public function FluorineFlash() {
init();
startCall();
}
private function init():void {
//建立一个数组,用于传给远程.net方法做参数
names=["SunNeon","FCK","Neon"];
nc=new NetConnection();
//以处理来自服务器的返回值
rp=new Responder(successResult,errStatus);
//指示应对其调用回调方法的对象
nc.client=nc;
//设置采用的编码
nc.objectEncoding = flash.net.ObjectEncoding.AMF3;
nc.connect("http://localhost/Flfx/Gateway.aspx");
}
private function startCall():void {
trace("调用远程nameList方法!");
//执行调用远程nameList方法,并为方法传递names数组
nc.call("Flfx.Sample.nameList",rp,names);
}
private function successResult(result:Array):void {
trace("返回结果:"+result);
trace("调用成功!");
//关闭连接
nc.close();
}
private function errStatus(result:Boolean):void {
trace("发生错误!");
nc.close();
}
}
}
我们在客户端AS里定义了一个数组names,然后通过nc对象的 call(”Flfx.Sample.nameList”,rp,names)方法把数组作为远程方法nameList的参数传递给Flfx项目里Sample类的nameList公共方法,并对其数组进行排序,然后返回给FLASH!
FLASH输出结果为:
返回结果:FCK,Neon,SunNeon
调用成功!
感谢原作者.