Variables des de txt a flash
3 seguidores
alguien sabe como pasar las variables de un txt a un flash de manera que se pueda trabajar con ellas?
por ejemplo, tengo un archivo text.txt, con esto escrito: num=34
y quiero por ejemplo duplicar un movie clip las veces que ponga num, si pongo loadVariables("text.txt",this) , me coge la variable pero solo para ponerla en un campo de texto, y no la puedo usar para el código.. no se si me explico..
a ver si alguien me puede hechar una mano..
granatta Profesor Plus
si tu fichero es "text.txt", pon esto dentro:
&num=34
luego en flash (mx) puedes usar el objeto LoadVars que te permitirá incorporar los datos externos a un objeto y manejarlos con éste:
nuevo=new LoadVars(); // línea 1
sacaDato=function(exito){ // líneas 2, 3, 4, 5, 6
if (exito){
trace(this.num);
}
}
nuevo.load("text.txt"); // línea 7
nuevo.onLoad=sacaDato; // línea 8
que esto va de la siguiente manera:
la línea 1 crea un objeto LoadVars
la línea 7 carga el fichero externo
la línea 8 define lo que hace el objeto cuando lo que ha llamado se ha cargado, lo que se indica por la actividad del evento onLoad
eso puedes definirlo como una función propia, en plan
nuevo.onLoad=function(){
blablabla
}
o bien como te pongo arriba con otra función, a la que se le pasa un parámetro booleano, da igual el nombre, que si es true es que no ha habido problemas y todo se cargó bien y si da false, pues no se ha cargado bien, así que sólo realizas acciones si hay "éxito"
y dentro defines lo que quieres hacer con "num", en este caso tendrías un objeto llamado "nuevo" y para acceder al valor de num deberías poner
nuevo.num
y creo que ya está :)
d+g.
theMartix
no me lo coge!! :_(
mira he puesto esto:
nuevo = new LoadVars();
sacaDato = function (exito) {
if (exito) {
trace(this.num);
_root.hi=this.num;
}
};
nuevo.load("text.txt");
nuevo.onLoad = sacaDato;
hi=nuevo.num;
trace(_root.hi);
puedes hacer directamente?:
nuevo=new LoadVars();
nuevo.load("text.txt");
hi=nuevo.num;
lo de sacaDato es por si no hay no datos no?
voy a intentar más, almenos ya se esto de LoadVars...
ah y gracias!!
granatta Profesor Plus
aquí porque sólo tienes una variable, num, pero si tuvieras 500 tardaría un poco más en cargarlo
entonces con LoadVars, al meter acciones que se ejecutan cuando se produce un evento onLoad te aseguras que las acciones las realizas cuando ya está todo cargado :)
sacaDato no tienes por qué usarla, puedes poner directamente:
nuevo = new LoadVars();
nuevo.load("text.txt");
nuevo.onLoad = function (exito) {
if (exito) {
trace(this.num);
_root.hi=this.num;
}
};
hi=nuevo.num;
trace(_root.hi);
e raro que no lo coja. hummmmmmm
nidea, toi espeso, 10 horas aquí delante me han dejado tonto :D
d+g.
theMartix
al hacer un preview te sale en la ventana de salida, undefined
lo has probado?
granatta Profesor Plus
no lo he probado, no :)
es que mi neurona tb anda undefined hoy xDDDD
pero bueno, y asignando el valor a la variable fuera del objeto LoadVars ?
ohú, mi arma, salero y olé, toma que toma y arriquitaun!
xD
d+g.
Klein
nuevo = new LoadVars();
nuevo.load("text.txt");
nuevo.onLoad = function (exito) {
if (exito) {
_root.hi=this.num;
hi=nuevo.num;
trace(_root.hi)
}
};
Esto a mí me rula...
theMartix
He conseguido coger una varible número mediante un método un poco xunguillo, me bajé un tuto de por ahí y cargaba las variables de un archivo de esos separados por comas, os pongo aqui un poco lo que hago para si alguien le interesa:
---FRAME1--------------
csv = new LoadVars();
csv.load("data.csv");
---FRAME2--------------
---FRAME3--------------
if (csv.loaded) {
nextFrame();
} else {
gotoAndPlay(2);
}
---FRAME4--------------
csvSTR = csv.toString();
a=Number(csvSTR.charAt(0)+csvSTR.charAt(1));
// en este caso el numero que tengo es de 2 cifras...
stop();
Puede parecer un poco cutre pero funciona, yo lo necesito para cargar un cierto numero de movies... por esto me va bien.
en el data.csv solo se tiene que poner: 34 (por ejemplo)