AS3 - 解析......休息到另一个......休息没有阵列演员

时间:2013-02-06 23:35:35

标签: actionscript-3

我使用NetConnection类来建立与amfPHP的连接。这个类有一个call()方法,它接收...rest作为最后一个参数,它将是发送给PHP的值。 我想要的是编写一个Proxy类,它将接收将对PHP进行的调用,而这个Proxy类将调用而不是我的DAO。现在,我的问题是,为了拥有NetConnection.call()的代理,我需要接收...rest参数并将其原样传递给NetConnection。但是会发生的是我的函数将...rest转换为数组,最后PHP只接收1个Array参数而不是大量的参数。假设我没有PHP上的代理来处理这个问题,我如何确保我的...rest参数将保留为...rest另一个函数?感谢。

1 个答案:

答案 0 :(得分:1)

因此...rest最终会获取剩余的所有参数,并从中创建一个名为rest的数组。如果你想用一个参数数组调用一个函数,而不是一个一个,那么apply method on Function就是你要找的。我不熟悉NetConnection,但这是一个例子

public function proxy(command:String, responder:Responder, ... args):void{
    var netConnection:NetConnection = new NetConnection();
    var argsToApply:Array = [command,responder];
    argsToApply = argsToApply.concat(args); //Forms an array of all the arguments in order
    netConnection.call.apply(null,argsToApply);
}

形成所有参数的单个数组,这样apply可以与call方法一起使用。