之前做项目需要对RemoteObject进行封装,遇见了一个问题:
那就是RemoteObject.getOperation().send()方法(
public function send(
...
args):
AsyncToken)的参数是:
... args |
也就是说需要对参数的个数进行判断,但是在不知道参数个数的情况下用switch进行判断的方法是行不通的...
今天看论坛有人提起这个问题,便在这里记下解决方法:
Flex中有一个方法Function.apply():apply 方法能“劫持”另外一个对象的方法。类似于java里的反射。
在这里,要对
send(... args)进行封装,可以使用:
function mySend(... args):void{
getOperation(name).send.apply(null, args);
}
问题得以解决。
(Function还有一个call方法,详细使用见Flex API)