Comunidad de diseño web y desarrollo en internet online

Creando un array con las variables obtenidas de un LoadVars

Citar            
MensajeEscrito el 01 Jul 2007 10:10 pm
Como me suele pasar... me estanco. Y esque ahun me queda mucho por aprender...

Código :

//Importamos las variables del documento .txt
var datos:LoadVars = new LoadVars();
datos.load("conecta.txt");

//Si se consigue conectar se crea un array con los datos
datos.onLoad = function (exito:Boolean){
   if (exito){
      trace (this["inicios"+0]);
      inicios = new Array();
      for (i=0; i<datos.length; i++){
         inicios[i] = this["inicios"+i]; //<<Creo que falla aquí
      }
      trace (inicios[0]);
   } else{ //Si no se muestra un mensaje de error
      trace("Error en la carga de datos");
   }
}


Gracias por leer!!

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 02 Jul 2007 03:22 am
mmm cambia a este aqui la declaracion de la variable

Código :

var inicios:Array = new Array();


y seria mejor si usas un XML y no un txt, la carga de datos lo podrias hacer usando XML y no un loadVars

Saludos :D

Por flasher

SWAT Team

120 de clabLevel

1 tutorial

 

Peruvian City

firefox
Citar            
MensajeEscrito el 02 Jul 2007 08:55 pm

flasher escribió:

mmm cambia a este aqui la declaracion de la variable

Código :

var inicios:Array = new Array();

[...]

Mmmmm...
Sigue sin funcionar U_U
Por cierto, se me olvidó poneros el archivo .txt

Código :

&inicios0=25&inicios1=11&inicios2=5&inicios3=34&inicios4=16&inicios5=0&


flasher escribió:

y seria mejor si usas un XML y no un txt, la carga de datos lo podrias hacer usando XML y no un loadVars

Pues realmente no será un .txt sinó un .php para poder interactuar, por este motivo no lo hago con .xml, con el que creo que no puedo trabajar bien enviando, recibiendo y editando datos.

Gracias por todo... espero respuesta con la solución!

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 02 Jul 2007 09:50 pm
juas xD entonces no mas comentarios de xml xD
bueno el error es este "datos.length" no te da nada es por eso que nunca entra al for a menos que envies en una variable el dato de la cantidad de variables, por ejemplo aqui al final le mando la cantidad...

Código :

&inicios0=25&inicios1=11&inicios2=5&inicios3=34&inicios4=16&inicios5=0&variables=5


Saludos :D

Por flasher

SWAT Team

120 de clabLevel

1 tutorial

 

Peruvian City

firefox
Citar            
MensajeEscrito el 03 Jul 2007 04:39 am
hace un tiempo hice algo asi mientras tenia una dosis de :cc: pero bueno, creo q te servirá

Código :

var miArray:Array = new Array();
//
var datos:LoadVars = new LoadVars();
datos.load("conecta.txt");
datos.onLoad = function(exito:Boolean) {
   if (exito) {
      for (i=1; i<100; i++) {
         trace(this["dato"+i]);
         miArray.push(this["dato"+i]);
         if (this["dato"+i] == undefined) {
            trace("FIN");
            break;
         }
      }
      trace("lista: "+miArray);
   } else {
      trace("Error en la carga de datos");
   }
};



ahi llena un array, para eso tu txt debe ser asi:

Código :

dato1=uno&&dato2=dos&&dato3=tres&&dato4=cuatro

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 03 Jul 2007 12:13 pm

eldervaz escribió:

hace un tiempo hice algo asi mientras tenia una dosis de :cc: pero bueno, creo q te servirá
[...]
ahi llena un array, para eso tu txt debe ser asi:
[...]


Muchísimas Gracias!!!!!!!!!
De verdad :)
De todas formas he añadido un detalle (marcado en rojo) al código para que no entre en el array el undefined:
var miArray:Array = new Array();
//
var datos:LoadVars = new LoadVars();
datos.load("conecta2.txt");
datos.onLoad = function(exito:Boolean) {
if (exito) {
for (i=1; i<100; i++) {
trace(this["dato"+i]);
miArray.push(this["dato"+i]);
siguiente=i+1;
if (this["dato"+siguiente] == undefined) {
trace("FIN");
break;
}
}
trace("lista: "+miArray);
} else {
trace("Error en la carga de datos");
}
}


Ya lo he acabado de adaptar a mis necesidades y todo perfecto :D

Gracias otra vez

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 03 Jul 2007 02:59 pm
:) q bueno... pero porq usaste: siguiente=i+1;

con eso empezarías con un indice 2? mira el trace q puse

por eso mi FOR empieza en 1 y no en 0 (cero)

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 03 Jul 2007 05:41 pm

eldervaz escribió:

:) q bueno... pero porq usaste: siguiente=i+1;
con eso empezarías con un indice 2? mira el trace q puse
por eso mi FOR empieza en 1 y no en 0 (cero)

Si no pones siguiente=i+1 el bucle llega a la variable que no tiene valor (undefined) y tambien la guarda en el array, en cambio, con la variable siguiente que he puesto comprueba, antes de llegar a la variable citada, que la siguiente no sea la que no tiene valor y si lo es sale del for :)
Si lo compruebas con el flash con el código que tu pusiste en el trace se ve un undefined, con el mío no :D

Por otra parte, lo de que el FOR empiece por 1 es porque en el documento .txt la primera variable es dato1 y no dato0, en el array de todas formas existe miArray[0], que es igual al dato1.

Creo que respondo a tus preguntas, pero que conste que alomejor me equivoco porque no se mucho :S

Por cierto... tengo una nueva duda :S
Este array solo vale dentro de la function... como hago que exista también fuera?


Como no... Gracias :D

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 03 Jul 2007 05:47 pm
ok entiendo, aunq si ejecutaste mi codigo, veras q NUNCA entra a indefinido, pero bueno, a ver sobre el array...

tu array sirve en TODA la linea de tiempo, la variable miArray es del tipo TIMELine, osea la puedes llamar desde cualquier lado siempre y cuando EXISTA. prueba en un btn

Código :

btn.onRelease=function(){
   if(miArray.length >=0){
      trace( miArray[0]);
      trace( miArray[1]);//etc etc
   }
}

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 03 Jul 2007 06:03 pm

Código :

var miArray:Array = new Array();
//
var datos:LoadVars = new LoadVars();
datos.load("conecta2.txt");
datos.onLoad = function(exito:Boolean) {
   if (exito) {
      for (i=1; i<100; i++) {
         miArray.push(this["dato"+i]);
         if (this["dato"+i] == undefined) {
            break;
         }
      }
   } else {
      trace("Error en la carga de datos");
   }
}
 trace("lista: "+miArray);

A mi el trace del final (fuera de la function) me da comor esultado:
lista:

Creo que es porque esos valores del array solo van dentro de la funcion :S Estoy utilizando Flash Professional 8

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 03 Jul 2007 06:08 pm
no no, no tiene nada q ver, lo q sucede es q tu ULTIMO trace q me muestras esta fuera del onLoad

recuerda q flash tarda unos milisegundos en reconocer y cargar el txt, que cuando el código esta por ese trace, quizás y casi seguro aun no carga el texto, por eso te digo q uses un btn para q veas q el array esta en la linea de tiempo

el onLoad se dispara cuando el TEXTO fue cargado

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 03 Jul 2007 06:15 pm

eldervaz escribió:

no no, no tiene nada q ver, lo q sucede es q tu ULTIMO trace q me muestras esta fuera del onLoad
recuerda q flash tarda unos milisegundos en reconocer y cargar el txt, que cuando el código esta por ese trace, quizás y casi seguro aun no carga el texto, por eso te digo q uses un btn para q veas q el array esta en la linea de tiempo
el onLoad se dispara cuando el TEXTO fue cargado


:love: ¡¡¡¡Muchísimas Gracias!!!!:love:




Todo Solucionado:D

Por seitz

35 de clabLevel



 

Jack Bach

firefox
Citar            
MensajeEscrito el 03 Jul 2007 06:16 pm
:)

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox

 

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