Comunidad de diseño web y desarrollo en internet online

"sacar" las variables recogidas por URLRequest.dataFormat

Citar            
MensajeEscrito el 20 Jul 2011 09:47 am
Hace poco abrí un hilo preguntando sobre variables dinámicas en AS3 y no he conseguido respuesta. Como es posible que no se entendiera muy bien lo que necesito, abro este nuevo hilo con un ejemplo práctico de lo que necesito. A ver si me podéis ayudar, compañeros.

La cuestión es que he cargado varias variables desde un txt externo. el objeto se llama datosCarga.

si yo hago un loop para ver sus variables:

Código :

for (var vars:String in datosCarga.data) {
      trace (vars);
   }

en la ventana de salida aparecen correctamente:
imagenes
variable2
variable3
O sea, que las variables están. Puedo acceder al ellas y a sus valores mediante:

Código :

datosCarga.data.imagenes
datosCarga.data.variable2
datosCarga.data.variable3

A mí lo que me interesaría es acceder a dichas variables sólo por su nombre, es decir, sin tener que poner eso de "datosCarga.data.imagenes".

En As2 yo lo hacía de la siguiente manera:

Código :

for (variables in datosCarga.data) {
   if (! isNaN(datosCarga.data[variables])) {
   set (variables, parseFloat (datosCarga.data[variables]));
   } else {
   set (variables, datosCarga.data[variables]);
   }
   }

Obviamente en AS3 no funciona
He intentado crearlas mediante el método de array:

Código :

for (var vars:String in datosCarga.data) {
      this[vars] = datosCarga.data[vars];
   }

si intento hacer un trace de cualquiera de ellas sólo por su nombre me dice que no existe esa propiedad. Tengo que hacerlo con, por ejemplo

Código :

trace(this.imagenes);


Necesitaría acceder directamente por su nombre

Código :

trace(imagenes);

pero no puedo

¿Alguien sabe cómo puede hacerse lo que necesito?

Gracias

Por CidDeMizar

81 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jul 2011 03:18 pm
No tengo el flash a mano para probar, así que contesto de memoria y no pongo las manos en el fuego. AS3 es strong type, con lo cual una propiedad creada al vuelo puede que salga como inexistente al tiempo de compilación. La notación de array debería salvar eso, ya que si la propiedad no existe traslada el error a tiempo de runtime. Dicho esto en teoría siempre que el contenedor sea una clase dinámica (MovieClip por ejemplo) te debería dejar. Prueba (en vez de crear variables al vuelo en el timeline) crearlas como propiedad de un objeto y ve si funciona.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Jul 2011 04:28 pm
Gracias Jorge. Como siempre, eres una luz en las tinieblas.

Un abrazo.

Por CidDeMizar

81 de clabLevel



 

firefox

 

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