^M Conector a AMFPHP Simple | Andrés Villagrán Placencia

Conector a AMFPHP Simple

Tengo prácticamente tirado el blog, así que pondré a disposición una pequeña clase que desarrollé el otro día 😛

Si no nos gusta utilizar RemoteObjects para cada módulo, ni tampoco queremos usar un Framework más denso, hay  una opción, que es utilizar la clase Servicios y definir los Handlers en las funciones que estimemos convenientes, el código es el siguiente:

  1.  
  2. /** Andrés Villagrán Placencia
  3.   andres@villagranquiroz.cl
  4.   http://www.villagranquiroz.cl
  5. **/
  6. package com.villagranquiroz.utils {
  7. import flash.net.NetConnection;
  8. import flash.net.Responder;
  9.  
  10. import mx.utils.ObjectUtil;
  11.  
  12. public class Servicios
  13. {
  14. private var gateway:String;
  15.  
  16. private var conexion:NetConnection;
  17.  
  18. public function Servicios(amfGateway:String)
  19. {
  20. gateway = amfGateway;
  21. conexion = new NetConnection();
  22. conexion.connect(gateway);
  23.  
  24. }
  25. public function send(nombre:String, result:Function, ... args):void {
  26. var responder:Responder = new Responder(result, onFault);
  27. //No necontré una forma más facil de hacer esto, si alguien sabe como pasar params* me avisa 🙂
  28. switch(args.length) {
  29. case 0: conexion.call(nombre, responder); break;
  30. case 1: conexion.call(nombre, responder, args[0]); break;
  31. case 2: conexion.call(nombre, responder, args[0], args[1]); break;
  32. case 3: conexion.call(nombre, responder, args[0], args[1], args[2]); break;
  33. case 4: conexion.call(nombre, responder, args[0], args[1], args[2], args[3]); break;
  34. case 5: conexion.call(nombre, responder, args[0], args[1], args[2], args[3], args[4]); break;
  35. case 6: conexion.call(nombre, responder, args[0], args[1], args[2], args[3], args[4], args[5]); break;
  36. }
  37.  
  38. }
  39.  
  40. private function onFault(fault:Object):void {
  41. trace("Error: " + ObjectUtil.toString(fault));
  42. }
  43.  
  44. }
  45. }
  46.  

Como se utiliza?

  1.  
  2. private var servicios:Servicios;
  3.  
  4. // Esta sería la funcion que instancia a los servicios
  5. private function init():void {
  6. servicios = new Servicios("http://www.villagranquiroz.cl/url/amfphp/gateway.php");
  7. }
  8.  
  9. private function llamada():void {
  10. // Con esto realizamos una llamada y asignamos la función que recibirá la respuesta
  11. servicios.send("Prueba.NombreFuncionAMFPHP", NombreFuncionAMFPHPHandler);
  12. // Si la función remota necesita parametros, se ponen despues de el nombre de la función
  13. }
  14. private function NombreFuncionAMFPHPHandler(event:ResultEvent):void {
  15. Alert.show("Respuesta: " + ObjectUtil.toString(event.result));
  16. }
  17.  

Espero que les sirva, también pueden crear una clase que contenga todos los Handlers, así no repiten funciones en los módulos. Recuerden que el ejemplo anterior no está completo, faltan los imports y una que otro código.

Tags: , ,

Monday, February 23rd, 2009 AMFPHP, Flex

2 Comments to Conector a AMFPHP Simple

  1. Andrés, jajaja, recién me di cuenta que tenemos el mismo template para nuestro blog.

    Voy a usar tu clase para facilitar mi vida con amfphp.

    Buen aporte.

  2. Renato Moya on December 2nd, 2009
  3. Hola…plop tambien tengo el mismo tamplate jajaj pero esta chevere tu blog, yo apenas lo estoy llevando desde este año 🙂 chevere crear comunidad

    saludos

  4. cesar suarez on December 18th, 2009

Leave a comment