2011-02-02 68 views
0

我正在多个类似的调用与一个远程对象具有类似的结果。由于这些调用非常相似且非常易变,我一直将远程方法的名称保存在配置文件中,并且当我需要调用远程对象的getOperation()时,调用send()操作对象。但是,这些要求已经发生变化,因此并不是所有的呼叫都具有相同数量的参数。我可以使用... rest *构造将数组传递给函数吗?

由于发送使用...,我将能够继续使用相同的格式并传递一个数组,或将send()视为传递一个数组类型的参数吗?

+1

作为一个侧面说明,也许这将有助于澄清任何混乱:如果你抽象的方式你的RO的操作会导致问题,因为你的operation.send()调用发送一个数组作为唯一的参数,看看Function.apply()。因此,在你想要将你的参数数组分解为send()调用的例子中,你可以执行如下操作: (operation.send as Function).apply(targetThis,arrayOfArgs)。 如果您发现要将一个数组对象发送到您的远程方法签名中,那么这会破坏您的参数。 希望有所帮助。祝你好运。 – 2011-02-02 23:16:38

回答

1

Operation类还具有可用的“参数”属性。这样你可以在调用send()之前预先填充它。 send()方法不需要额外的参数。

var operation:Operation = Operation(remoteObject.getOperation(methodName)); 
operation.arguments = parameters; 

var token:AsyncToken = operation.send(); 
var responder:Responder = new Responder(resultHandler, faultHandler); 
token.addResponder(responder); 
0

你可以使用...休息

这将给你一堆对象的数组。我会建议你做第一个项目[0]总是ID。这个ID应该标识发送者或者传递的对象的类型。您可以轻松为每种类型的项目开关/外壳。你也可以采取更复杂的方式处理这个问题,但这应该起作用。