El problema que tengo es el siguiente: estoy desarrollando una aplicación en flex, y utilizo amfphp para conectar con el servidor. En un intento de reutilizar código, me he encontrado con lo siguiente:
1.- He creado una clase "RpcManager", que se encarga de gestionar todas las llamadas a los servicios.
2.- "RpcManager" tiene un método público call al que se le pasa un identificador del servicio y un número variable de argumentos
Código :
public function call( serviceID:Number, ... args ) : void {
var service:RemoteService = services[serviceID];
gateway.call( service.address, service.responder, args );
}
El problema reside en que dentro de esta función, args es un Array, que es lo que se envía al hacer la llamada, en vez de una serie de parámetros, por lo que al llegar al script, éste detecta un único argumento de tipo array, en vez de una serie de ellos.
3.- Como gateway es de tipo NetConnection, y su método call también acepta un número variable de argumentos, este problema puede solucionarse haciendo:
Código :
gateway.call( service.address, service.responder , args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
lo cual, aunque funcional, resulta bastante extraño y poco ortodoxo.
¿Se os ocurre alguna manera de hacerlo de un modo más limpio?
Muchas gracias por todo!
