Comunidad de diseño web y desarrollo en internet online

[Prob : Direccionamiento] Flash/PHP/MYSQL y Clases

Citar            
MensajeEscrito el 26 Abr 2006 09:53 am
Hola a Todos ^^ , a ver si me podeis hechar una mano.

Toi desarrollando una aplicación en flash que accede a una base de datos en MySQL. Para ello me sirvo de PHP e utilizo el objeto LoadVars de Flash para comunicarme con PHP. La parte de PHP y MySql dominada y flash a medias, los ejemplos leidos sobre este tema en la web me han ayudado bastante. :)

Ahora el problema que tengo es de direccionamiento, para modularizar la aplicacion de flash se me ocurrio la idea de crearme una clase en flash que recogiese los metodos y propiedasdes necesarias para la comunicacion con la bbdd. Que para que de esta manera con una linea de codigo en flash fuera capaz (de hacer un login/dar de alta un usuario/la baja del mismo/ etc..)

A ver sin usar la clase he conseguido que funcionase, pero me interesa poder usar la clase para ahorrame lineas de codigo y legibilidad del mismo. También por que asi con la clase creada su posterior uso para otros proyectos.

Aqui os pongo un poco del codigo de la clase:

Código :

class IO
{
   //--------------------------Declaracion de variables
   //
   //Referentes a la url del servidor
   //
   var host : String;      //se almacena la direccion del servidor
   var fauser : String;   //almacena el nombre del fichero alta usuario
   var fbuser : String;   //almacena el nombre del fichero baja usuario
   var fiuser : String;    //almacena el nombre del fichero info usuario
   var fliuser : String;   //almacena el nombre del fichero listar usuarios
   var fluser : String;   //almacena el nombre del fichero login usuario
   //
   //Referentes al estado de la comunicacion
   //
   var envio : Object;      //encargada del envio/recpcion Info
   var error : Boolean;   //indica si se ha producido algun error
   var errmsg : String;   //contiene el texto del error producido
   var estado : String;   //informa sobre el estado de la comunicacion
   var txrx : Boolean;      //Se activa cuando esta enviando o recibiendo nfo
   //
   //Referentes a la tabla de usuarios
   //
   var unombre : String;   //nombre usuario actual
   var uapellidos :String;   //apellidos usuario actual
   var ulicencia : String; //numero licencia usuario actual
   var uid : Number;      //identificador del usuario
   var ulogin : Boolean;   //checkea si se ha hecho un login
   var ulista : String;   //lista de usuarios [buscar declarecion array]
   var uerr : Number;      //informa si se ha producido algun error
   
   
   //----------------------Declaracion del constructor
   //
   //   Aqui inicializamos las variables de configuracion 
   //   de la clase y estado
   function IO ()
      {
         this.host = "http://127.0.0.1/PFC%20(www)/";
         this.fauser = "nuevo_usuario.php";
         this.fbuser = "baja_usuario.php";
         this.fiuser = "info_usuario.php";
         this.fliuser = "listar_usuarios.php";
         this.fluser = "login.php";
         this.flpos = "leer_posicion.php";
         this.fepos = "escribir_posicion.php";
         this.fapalo = "alta_palo.php";
         this.fbpalo = "baja_palo.php";
         this.fipalo = "info_palo.php";
         this.flpalo = "listar_palos.php";
         this.flesta = "leer_estadistica.php";
         this.feesta = "escribir_estadistica.php";
         this.ulogin = false;
         this.error = false;
         this.txrx = false;
         this.errmsg = "";
         this.estado = "A la Espera";
      }
   //----------------------Metodos
   //
   
   //
   // Referentes a la tabla usuarios
   //
   function alta_usuario (nombre : String , apellidos : String, licencia : String )
   {
      //construimos la direccion URL del fichero php
      var cadena : String;
      cadena = this.host + this.fauser;
      //inicializamos la variable de envio
      this.envio = new LoadVars();
      //asignamos los parametros a enviar
      this.envio.N = nombre;
      this.envio.A = apellidos;
      this.envio.L = licencia;
      //Lo que hacemos cuando recibamos la info
      this.envio.onLoad = function() {
         this.estado = "Reciviendo Información...";
         this.uerr = this.err;
         //generamos informe de errores
         if (this.uerr != 0) {
            this.error = true;
         }
         switch (this.uerr){
            case "0" : 
               this.errmsg = "Usuario dado de alta.";
               break;
            case "1" :
               this.errmsg = "ERR : El usuario ya existe.";
               break;
            case "2" : 
               this.errmsg = "ERR : Informacion entrada incorrecta.";
               break;
            case "3" :
               this.errmsg = "ERR : No se puedo realizar la conexion con la BBDD.";
               break;
         }
         this.estado = "Comunicacion realizada."
         this.txrx = false;
         trace (this.errmsg);
         trace (this.estado);
         trace (this.txrx);
         nextFrame();
      }      
      //realizamos el envio
      this.estado = "Enviando Información Alta Usuario...";
      this.txrx = true;
      this.envio.sendAndLoad(cadena, envio, "POST");      
   }


A ver el problema es el siguiente, en la funcion Onload del objeto loadvars, me quiero referir a las propiedades de la clase : estado, uerr, error, errmsg, txrx. Pero claro como el identificador this dentro de esta funcion se refiere al objeto Loadvars (vease que this.err es lo que nos devuelve el fichero de php, vamos es el codigo de error producido en la comunicacion). Mi pregunta es como hago para referirme a las propiedades nombradas, dentro de esta funcion.

Por Gr33s0n

0 de clabLevel



Genero:Masculino  

A Coruña

firefox
Citar            
MensajeEscrito el 01 May 2006 10:32 am
lo que yo haria, en tu funcion constructora haria una llamada a otra funcion, inicilizarIO(thisIO), donde actualmetne realizaria las inicializaciones y le pasaria una variable de refrencia que actue como puntero. var thisIO:IO= this;

quedaria algo asi:

...
...

Código :

function IO(){
var thisIO:IO=this;
inicializarIO(thisIO);
}

private function inicializarIO(ref:IO):Void{

         ref.host = "http://127.0.0.1/PFC%20(www)/";
         ref.fauser = "nuevo_usuario.php";
         ref.fbuser = "baja_usuario.php";
         ref.fiuser = "info_usuario.php";
         ....
}

a ver si sirve de algo...oop no es lo mio :P

de todas formas, quizas te compense mas mirar un poco sobre PHPobject...un ejemplo en castellano (!)

enga, a disfrutar. :wink:

Por goliatone

66 de clabLevel



 

firefox

 

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