[as3.0]自定义REMOTING类

 今天写项目时用到了REMOTING,写了个AS3.0的REMOTING类:

首先建立RemotingService.as文件:

/*
remoting类
负责FLASH与数据库交互
*/

package net.smilecn.net
{
    
          import flash.net.
*;
          import flash.events.
*;

          import net.smilecn.event.RemotingEvent;

          public class RemotingService extends NetConnection
{
        
//##########################################################################
    //
    //变量
    //
        //##########################################################################
    private var _method:String;
    private 
var object:Object;
    private 
var pc:Responder;
    
/*
    构造
    @param _gatewayURL remoting网关地址
    @param amf 使用AMF3或AMF0
    
*/

    public 
function RemotingService(gatewayURL:String,amf:int{
        objectEncoding
=amf;
        connect(gatewayURL);
        pc
=new Responder(onResult, onFault);

    }

        
//##########################################################################
    //
    //方法
    //
    //##########################################################################
    /*
    调用remoting方法  
    @param _method 调用remoting方法名
    @param _servicePath php类路径
    
*/

    public 
function calls(servicePath:String,method:String,args:Array):void {
        object
=new Object();
        
this._method = method;
        call(servicePath,pc,args);
    }

    
/*
    调用成功
    
*/

    private 
function onResult(re:Object):void {
        object._method
=this._method;
        object.re
=re;
        dispatchEvent(
new RemotingEvent(RemotingEvent.SUCCESS, object));
    }

    
/*
    调用失败
    
*/

    private 
function onFault(fe:Object):void {
        object._method
=this._method;
        object.fe
=fe;
        dispatchEvent(
new RemotingEvent(RemotingEvent.FAILED, object));
    }

          }

}

as3.0使用dispatchEvent要传参数需要自己定义一个EVENT类,建立RemotingEvent.as文件

/*
由RemotingService广播事件
Main接收广播
*/

package net.smilecn.event
{
    
    import flash.events.Event;
    
    public class RemotingEvent extends Event 
{
        
//##########################################################################
    //
    //    常量
    //
        //##########################################################################
        public static const SUCCESS:String = "success";
        public static const FAILED:String 
= "failed";
        
//##########################################################################
    //
    //    变量
    //
        //##########################################################################
        private var _object:Object;
        
/*
          @param type事件类型
          @param object事件参数
        
*/

        public 
function RemotingEvent(type:String,object:Object){
            super(type);
            _object
=object;
        }

        
//##########################################################################
    //
    //    方法
    //
        //##########################################################################
        public function get object():Object {
            
return _object;
        }

    }

}

 

最后建一个DOCUMENT CLASS,调用REMOTING类就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值