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

Problema con Array

Estas en el tema de Problema con Array en el foro de Flash y Actionscript en Foros del Web. Estoy trabajando con una cadena de texto que me devuleve php. Con .split separo las cadenas que hay en las variables "logoN" en un numero ...
  #1 (permalink)  
Antiguo 14/05/2003, 15:42
Avatar de roninrojo  
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 103
Antigüedad: 21 años, 7 meses
Puntos: 0
Problema con Array

Estoy trabajando con una cadena de texto que me devuleve php. Con .split separo las cadenas que hay en las variables "logoN" en un numero de arrays llamados imagenesN de 2 elementos cada uno y luego utilizo un array llamado archivos para guardar el primer elemento de imagenesN. Tengo el siguiente codigo:
-----------------------------------------------------
Vars=new LoadVars();
Vars.load(php_file);
Vars.onLoad = function(success){
this.archivos = new Array();
for(this.i=1; this.i<=this.Total; this.i++){
// Creao un array para meter los nombres de las imgenes
this["imagen" + this.i] = this["logo"+this.i].split("|");
this.archivos[this.i] = this["imagen" + this.i][1];

_root.nombre.text += Vars.archivos[this.i]; //esto si me lo muestra
}
};
_root.nombre2.text = Vars.archivos[1];//esto no me lo muestra
---------------------------------------------------
El problema es que el array archivos lo creo dentro de la funcion onLoad pero cuando lo llamo para mostrarlo fuera de la funcion, no me muestra nada!! pero dentro de la funcion si funciona!
Me estoy volviendo loco con esto ¿alguien sabe cual es el problema? Ayuda por favor.
Gracias por adelantado y saludos!!
  #2 (permalink)  
Antiguo 14/05/2003, 15:58
 
Fecha de Ingreso: julio-2001
Ubicación: Barcelona
Mensajes: 922
Antigüedad: 23 años, 4 meses
Puntos: 1
Hola, q tal.

Si tienes el codigo tal como lo muestras, quiza no te lo coja pq le estás llamando antes de estar cargado el loadvars.

Si no es ese el problema, prueba a crear el array fuera del objeto Vars, y a ver q tal.

saludos
  #3 (permalink)  
Antiguo 14/05/2003, 16:16
Avatar de roninrojo  
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 103
Antigüedad: 21 años, 7 meses
Puntos: 0
crando el array fuera de la funcion tampoco me funciona...
no se supone que aunque sea una clase del objeto vars si pongo esta linea fuera de la funcion me debe funcionar?:

_root.nombre2.text = Vars.archivos[1];

Por otro lado si hago esto:
archivos = new Array();<-----lo creo fuera
Vars=new LoadVars();
Vars.load(php_file);
Vars.onLoad = function(success){

for(this.i=1; this.i<=this.Total; this.i++){
// Creao un array para meter los nombres de las imgenes
this["imagen" + this.i] = this["logo"+this.i].split("|");
archivos[this.i] = this["imagen" + this.i][1];

_root.nombre.text += archivos[this.i]; //esto deberia ir???,pues no me va
}
};
_root.nombre2.text = archivos[1];//esto sigue sin funcionar
-------------------
Creo que el problema tiene que ver en poner _root, o this o yo que se, he provado tantas veces que me e desorientado....
Gracias maltos y abuenog ¿sabeis la solucion?
Saludos
  #4 (permalink)  
Antiguo 14/05/2003, 16:57
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Yp creo que estas enredado con el Codigo Por lo que veo es quieres meter datos en un Array por medio de LoadVars.

Bueno yo lo haria asi:

---------paises.txt----------
&paises0=mexico&
&paises1=holanda&
&paises2=peru&
&paises3=canada&
&paises4=colombia&
&paises5=argentina&
&total=6&
--------------------------------

------Fla------
Código:
carga = new LoadVars();
carga.load("paises.txt");
carga.onLoad = function() {
	tu_array = [];
	for (i=1; i<this.total; i++) {
//Aqui Metemos la info al array
		tu_array.push(this["paises"+i]);
		trace("Metiendo :"+this["paises"+i]);
	}
	trace("Array Terminado: "+tu_array);
};
y listo

Ahora el this hay que saberlo utilizar,tu lo pones dentro del for y no es recomendable solo hay que utilizarlo lo menos posible.
Otra cosa ¿Que es lo que quieres hacer aqui?
Código:
archivos[this.i] = this["imagen" + this.i][1];
no lo entendi.

Ahora si tienes mucha informacion lo mejor es utilizar XML.

Saludos!!
  #5 (permalink)  
Antiguo 15/05/2003, 01:13
 
Fecha de Ingreso: julio-2001
Ubicación: Barcelona
Mensajes: 922
Antigüedad: 23 años, 4 meses
Puntos: 1
Hola, q tal.

Según tienes el codigo, tu problema está en que llamas al array antes de haber cargado el onLoad, por lo que no te funcionará. Para probar puedes hacer lo siguiente.

Deja este codigo en el primer frame, y coloca un stop:

archivos = new Array();<-----lo creo fuera
Vars=new LoadVars();
Vars.load(php_file);
Vars.onLoad = function(success){

for(this.i=1; this.i<=this.Total; this.i++){
// Creao un array para meter los nombres de las imgenes
this["imagen" + this.i] = this["logo"+this.i].split("|");
archivos[this.i] = this["imagen" + this.i][1];

_root.nombre.text += archivos[this.i]; //esto deberia ir???,pues no me va

_root.gotoAndStop(2)
}
};


Y luego en el frame 2 coloca esto:

_root.nombre2.text = archivos[1];//esto sigue sin funcionar


De esta manera, no llamas al array hasta que hayas cargado los datos del Vars.

saludos
  #6 (permalink)  
Antiguo 15/05/2003, 01:41
Avatar de roninrojo  
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 103
Antigüedad: 21 años, 7 meses
Puntos: 0
Hola!

abuenog, ¿quieres decir que hasta que no termina el frame, el onLoad no se carga? Puede que tengas razon porque justo la solucion que me das si que funciona en otra movie que tengo del mismo proyecto... lo probare en este codigo d todoas maneras, pero me parece rarisimo!!
-------------------------
TMesister el problema no es meter los datos en el Array, eso lo hace bien, el problema es que me los muestre en un campo de texto dinámico una vez ha acabado la función onLoad, dentro de la función si que me muestra los datos, pero fuera no. Pero gracias por contestar, me has dado alguna idea.
Acerca de la linea:

archivos[this.i] = this["imagen" + this.i][1];

imagen es un numero de arrays que viene dado por el numero de varibles que me devuleve php, es decir imagen1, imagen2, imagenN, lo que hago es meter el primer elemnto de cada uno de estos arrays en un unico array llamado archivos. Pero como te decia antes este no es el problema, porque me funciona.
------------------------------
Bueno espero respuestas!!! Gracias por adelantado!!!!!
Saludos
  #7 (permalink)  
Antiguo 15/05/2003, 01:51
 
Fecha de Ingreso: julio-2001
Ubicación: Barcelona
Mensajes: 922
Antigüedad: 23 años, 4 meses
Puntos: 1
Hola de nuevo.

El problema no es que hasta que carga el frame no carga el Vars. El problema es que en el Vars carga datos externos, y por lo tanto, la carga dura un rato, pero mientras flash va procesando todo el codigo que tiene a continuación. Y por lo tanto, esa variable que buscabas aun no la tenías cargada cuando flash la procesa. De ahi que hay un onLoad, para añadir dentro los procesos que quieres que se ejecuten una vez cargados los datos del Vars. Ahi dentro debe de ir todo lo que no pueda funcionar sin esos datos. O bien en otra funcion y desde el onLoad llamar a otra funcion. O como en el ejemplo que de di, enviar a otro frame.

Saludos
  #8 (permalink)  
Antiguo 15/05/2003, 02:04
Avatar de roninrojo  
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 103
Antigüedad: 21 años, 7 meses
Puntos: 0
Gracias abuenog, ya lo he entendido!!! el problema me estaba volviendo loco porque era ilogico que no funcionase, pero ahora ya se porque.
Creo que cargaré las variables en un frame, y cuando haya acabado, realizaré las acciones desde otro.
Saludos!!
__________________
www.albertocarazo.com
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 17:00.