Vuelvo con una duda de principiante. Es sobre el ámbito de las variables. Ya sé que es un tema muy manido, pero me estoy volviendo loco y ya no sé qué hacer.
En mi antiguo mundo del AS2, si yo declaraba una variable en la línea de tiempo proncipal, podía acceder a ella desde cualquier otra línea de tiempo anteponiéndo "_root".
Código :
//línea de tiempo principal var texto:String = "este es el texto dinámico";
Código :
//código en el primer frame del movieclip "elClip" trace(_root.texto);
Obviamente, la salida del trace era el valor de la varioable "texto" de la línea de tiempo principal.
En AS3 me estoy encontrando con que no puedo acceder a esas variables, por lo que algo estoy haciendo mal y no sé qué es.
El tema es con una variable loader que me carga unos textos:
Código :
var datos:URLRequest = new URLRequest(dir + laPeli+".txt"); var datosCarga:URLLoader = new URLLoader(); datosCarga.dataFormat = URLLoaderDataFormat.VARIABLES; datosCarga.addEventListener (Event.COMPLETE, resuelveExtData); datosCarga.load (datos);
Esto me lo hace en el frame 1 de la línea de tiempo principal. Si yo en el frame 25 de la misma línea de tiempo le pongo:
Código :
trace(datosCarga.data.texto1);
en la ventana de salida me aparece el valor de la variable texto1 sin problemas.
En ese mismo frame tengo puesto el movieclip "elClip". Si en el frame 1 de su línea de tiempos pongo:
Código :
trace(root.datosCarga.data.texto1);
me da un error diciendo que no existe esa propiedad. He probado con stage, con parent, con this.parent, con this.root,... con todo lo que se me ha ocurrido, y el resultado ha seguido siendo el mismo error.
¿Me podéis indicar cómo hacerlo bien?
Gracias miles.