Foros del Web » Creando para Internet » Flash y Actionscript »

Variables dinámicas en método

Estas en el tema de Variables dinámicas en método en el foro de Flash y Actionscript en Foros del Web. Hola, tengo una clase que realiza un acceso a una base de datos via php. Esta clase sirve a su vez de contenedor de otro ...
  #1 (permalink)  
Antiguo 01/01/2009, 11:18
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Variables dinámicas en método

Hola,

tengo una clase que realiza un acceso a una base de datos via php. Esta clase sirve a su vez de contenedor de otro tipo de clases, que determina una propiedad de la misma.

En el método de la clase que hace el tratamiento del XML que me devuelve este php creo variables dinámicas:

set(LfCampo.nodeName, LfCampo.childNodes[0].nodeValue);

El tema está en que luego necesito acceder a estas variables dentro del mismo método, pero al no estar creadas via 'var' el compilador de flash me da un error.

He encontrado una solución para tratarlas via eval troceandola:

eval("LBNO_"+"Id")

para que 'cuele', pero no me parece lo más apropiado.

El tratamiento de XML es el siguiente:

Código:
private function XMLok() {

...

for (Li=0; Li<Lfilas; Li++) {
  LfNodo = eval("Lfila"+Li);
  LfCampo = LfNodo.firstChild;
  while (LfCampo != null) {
    set(LfCampo.nodeName, LfCampo.childNodes[0].nodeValue);
    LfCampo = LfCampo.nextSibling;
}
this.__vElementos[Li] = new cNoticia(eval("LBNO_"+"Id"), this.__Tabla, this.__PhpDir);
//
this.__nElementos += 1;

...

}
¿Alguna idea de como acceder a estas variables dinámicas?
  #2 (permalink)  
Antiguo 01/01/2009, 16:41
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: Variables dinámicas en método

Hola iPunto !

Puedes tener una clase que se dedique solamente a registrar las variables definidas en el documento XML:

Código actionscript:
Ver original
  1. class Registry
  2. {
  3.    
  4.     private var _obj:Object;
  5.    
  6.     public function Registry()
  7.     {
  8.         _obj = new Object();
  9.     }
  10.    
  11.     public function setValue(key:String, value:Object):Void
  12.     {
  13.         _obj[key] = value;
  14.     }
  15.    
  16.     public function getValue(key:String):Object
  17.     {
  18.         return _obj[key];
  19.     }
  20. }

Tiene 2 métodos públicos:

El método setValue registra un valor nuevo, recibe como parámetro un valor String que es la clave que identifica al valor y el otro parámetro es el valor en si.

El método getValue obtiene un valor a partir de la clave.

Ahora desde tu clase "maestra" en lugar de utilizar eval, utilizas el método getValue de una instancia de la clase Registry, un ejemplo:

Código actionscript:
Ver original
  1. class Main
  2. {
  3.    
  4.     private var _registry:Registry;
  5.    
  6.     public function Main()
  7.     {
  8.         _registry = new Registry();
  9.         load();
  10.     }
  11.    
  12.     private function load():Void
  13.     {
  14.         _registry.setValue('v1', 'valor1');
  15.         _registry.setValue('v2', 'valor2');
  16.         _registry.setValue('v3', 2009);
  17.     }
  18.    
  19.     public function print():Void
  20.     {
  21.         trace(_registry.getValue('v1'));
  22.         trace(_registry.getValue('v2'));
  23.         trace(_registry.getValue('v3'));
  24.     }
  25. }

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 01/01/2009, 16:51
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Variables dinámicas en método

Que código más bueno.

Habia intentando implementar algo similar con arrays dinámicos, pero no me funcionaba.

No controlo el funcionamiento de Object , pero con esta clase creo que voy a aprender bastante.

Por cierto, supongo que este será también aplicable a Javascript, ¿no?.

Voy a probarlo. Gracias.
  #4 (permalink)  
Antiguo 01/01/2009, 16:57
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: Variables dinámicas en método

Cita:
Iniciado por iPunto Ver Mensaje
Que código más bueno.

Habia intentando implementar algo similar con arrays dinámicos, pero no me funcionaba.

No controlo el funcionamiento de Object , pero con esta clase creo que voy a aprender bastante.

Por cierto, supongo que este será también aplicable a Javascript, ¿no?.

Voy a probarlo. Gracias.
Hola iPunto ! !

Si, eso lo podrías emular en javascript con arrays asociativos pero como actionscript no cuenta con esto, se utiliza un objeto.

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:14.