Flash Remoting with FluorineFx .NET[转]

it2022-05-09  32

像我这样的菜鸟能看懂的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  System; 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的实现:

package  {     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输出结果为:

调用远程nameList方法!返回结果:FCK,Neon,SunNeon调用成功 !

感谢原作者.

转载于:https://www.cnblogs.com/aoogur/archive/2008/12/24/1361141.html

相关资源:数据结构—成绩单生成器

最新回复(0)