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.
