Comunidad de diseño web y desarrollo en internet online

Num. indeterminado parametros (NetConnection.call())

Citar            
MensajeEscrito el 08 Abr 2010 03:41 pm
Hola!

Veréis, mi duda va en relación a cómo debo hacer para que el método NetConnection.call() pueda pasar a una función php un número indeterminado de parámetros. La función puede recibir tantos parámetros como se les envíe (uno, dos, tres.. o veinte), pero no consigo que el método que invoca a la función sea capaz de hacerlo.

He hecho varias pruebas, como por ejemplo, agrupar los parámetros en una array y enviar ésta, pero tampoco funciona.

Os pongo un ejemplo esquemático de lo que pretendo hacer para que me entendáis mejor. El sistema se va a hacer con amfphp (http://www.amfphp.org/). No sé si el problema viene por el método en sí (NetConnection.call()) que no permite enviar un número indeterminado de parámetros o es porque hay que hacerlo de alguna manera en concreto, la cual desconozco.

Si envío los parámetros, por separados, funciona correctamente.

Código ActionScript :

enviaDatos(parametro1,parametro2);
function enviaDatos(...arguments):void{
     responder=new Responder(datosOk,error);
     conexion.call("NombreClasePhp.nombreMetodoPhp",responder,arguments);
}


gracias por contestar :)

Por pulgOsO

7 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Abr 2010 04:19 pm
Ya lo he encontrado. Lo pongo aquí por si le sirve a alguien. La llamada en cuestión sería algo así:

Código ActionScript :

conexion.call.apply(conexion, ["NombreClasePhp" + "." + nombreMetodoPhp, responder].concat(args));


Fuente:
http://stackoverflow.com/questions/1149018/forwarding-variable-arguments

pulgOsO escribió:

Hola!

Veréis, mi duda va en relación a cómo debo hacer para que el método NetConnection.call() pueda pasar a una función php un número indeterminado de parámetros. La función puede recibir tantos parámetros como se les envíe (uno, dos, tres.. o veinte), pero no consigo que el método que invoca a la función sea capaz de hacerlo.

He hecho varias pruebas, como por ejemplo, agrupar los parámetros en una array y enviar ésta, pero tampoco funciona.

Os pongo un ejemplo esquemático de lo que pretendo hacer para que me entendáis mejor. El sistema se va a hacer con amfphp (http://www.amfphp.org/). No sé si el problema viene por el método en sí (NetConnection.call()) que no permite enviar un número indeterminado de parámetros o es porque hay que hacerlo de alguna manera en concreto, la cual desconozco.

Si envío los parámetros, por separados, funciona correctamente.

Código ActionScript :

enviaDatos(parametro1,parametro2);
function enviaDatos(...arguments):void{
     responder=new Responder(datosOk,error);
     conexion.call("NombreClasePhp.nombreMetodoPhp",responder,arguments);
}


gracias por contestar :)

Por pulgOsO

7 de clabLevel



 

safari
Citar            
MensajeEscrito el 09 Abr 2010 10:11 am
Bueno, pongo aquí otra duda que me surge por si alguien puede echarme un cable. Va en relación a los dos post anteriores.

Siguiendo el código del primer post, ¿Cómo puedo hacer para recuperar el valor que devuelve la función datosOk invocada a través del objeto Responder? :)

Gracias por la ayuda

Por pulgOsO

7 de clabLevel



 

safari
Citar            
MensajeEscrito el 09 Abr 2010 05:50 pm

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

msie8
Citar            
MensajeEscrito el 15 Abr 2010 10:13 pm
Perdón por el retraso en la respuesta!
Muchas gracias por el enlace, la verdad es que viene todo muy bien explicadito, pero igual no concreté realmente mi duda ya que aun la sigo teniendo.

Realmente no sé si el enfoque que quiero darle a la práctica es el adecuado, pues aun estoy empezando en as3 y me cuesta la lógica de la estructura de clases, pero lo estoy intentando :) Hace tiempo que estoy trabajando con amfphp, y realmente no me ha dado mucho mucho problema. Pero en mi afán por optimizar el código me surgen dudas y de ahí el siguiente planteamiento.
Como sabemos, al método Responder se le ha de pasar dos parámetros (result:Function y status:Function ), uno que es el que se ejecutaría en caso de que la llamada fuera bien, y otro que es el que se ejecutaría en caso de que hubiera algún error

Hasta ahí perfecto. Así que si tengo 5 objetos Responder para que cada uno pida al servidor equis datos, cada de uno de ellos debería tener estos dos parámetros asociados (que no serán otra cosa que dos funciones que recibirán la respuesta enviada desde el servidor) Suponiendo que todas las respuestas son de un único tipo, por ejemplo Boolean, ¿podríamos hacer una función genérica que recuperase esta respuesta a través de return y que así pudiera estar accesible desde otra función incluso desde otra clase?

De manera esquemática mi ejercicio pinta tal que así:



Gracias y un saludo!!

Por pulgOsO

7 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.