package as3.tools
{
import mx.rpc.AbstractOperation;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
/**
* 远程Oject请求
*/
public final class OjectRequet
{
private var object:RemoteObject;
private var remoteMethods:AbstractOperation;
/**
* __objectDes:远程对象地址
* __fun:远程方法
* __sucessfun:调用成功事件
* __failedfun:调用失败事件
*/
public function OjectRequet(__objectDes:String,__fun:String,__sucessfun:Function,__failedfun:Function)
{
object=new RemoteObject();
object.destination=__objectDes;
remoteMethods =object.getOperation(__fun);
remoteMethods.addEventListener(ResultEvent.RESULT,__sucessfun);
remoteMethods.addEventListener(FaultEvent.FAULT,__failedfun);
}
/**
* 调用远程方法
* __args:参数组
*/
public function call(__args:Array):void{
if(__args.length==0){
remoteMethods.send();
}else if(__args.length==1){
remoteMethods.send(__args[0]);
}else if(__args.length==2){
remoteMethods.send(__args[0],__args[1]);
}else if(__args.length==3){
remoteMethods.send(__args[0],__args[1],__args[2]);
}else if(__args.length==4){
remoteMethods.send(__args[0],__args[1],__args[2],__args[3]);
}else if(__args.length==5){
remoteMethods.send(__args[0],__args[1],__args[2],__args[3],__args[4]);
}else if(__args.length==6){
remoteMethods.send(__args[0],__args[1],__args[2],__args[3],__args[4],__args[5]);
}
}
}
}