Una situación común en cualquier lenguaje es la necesidad de subir archivos mediante Flash Adobe. La situación complicada es asegurarnos antes de mostrar el resultado que el archivo haya subido completo.
Los tipos de archivos de este tutorial son del tipo texto y del tipo imagen.
Los de texto son archivos de extensión .txt y lo de imagen .jpg, gif, png.
En el primer caso, .txt, vamos a suponer que el archivo se llama: datos.txt
Para ello veremos dos métodos.
El primero consiste en introducir dentro del contenido del archivo una variable que testearemos luego dentro del Flash si tiene existencia.
Cargar un archivo .txt
Un archivo típico .txt preparado con contenido para ser leído en Flash, tendrá la forma siguiente:
Datos.txt
&nombre=Julio&
&apellido=Cortazar&
&listo=ok&
El truco está en la última línea. Cuando el archivo se ha cargado completamente, la variable listo toma el valor ok. Desde Flash, lo que hay que hacer es controlar que esa variable contenga ese valor.
En el archivo flash, en el escenario se colocan 4 fotogramas claves.
En el fotograma1: _root.loadVariables(“Datos.txt”) // Carga el contenido en el escenario
Fotograma2: if (listo==”ok”){gotoAndPlay(4);} // Si listo es igual a “ok”, salta al 4
Fotograma 3: gotoAndPlay(2); // si antes no salgo al 4, sigue a este frame, que devuelve el cursor al frame anterior para volver a preguntas si listo es igual a ok.
Fotograma 4: // aquí colocar el programa que desee, ya están cargadas las variables.
En forma muy sencilla se ha asegurado que se haya cargado el archivo. Mientras no ocurra ello, el cursor pasará del frame 3 al 2, hasta que se haya cargado el archivo. Entre esos dos frames, puede colocar algún tipo de cartel de espera para que el usuario se de cuenta que se está cargando un contenido.
Cargar una imagen
El otro caso es la necesidad de cargar imágenes, en formato .jpg o .gif o .png
Mientras en el caso anterior controlábamos una variable como contenido del archivo, en este caso vamos a controlar el total de bytes cargados.
Para ello se usa un objeto que tiene dos métodos útiles, uno controla los bytes que se van cargando, el otro tiene el total de bytes que se debe cargar.
Suponiendo que hay un Movieclip llamado: imagen, con nombre de instancia imagen_mc en el escenario y donde se cargará la imagen, los ActionScript, que se colocan en el frame 1 del escenario serían:
Para ir mirando el porcentaje de carga, coloque en el escenario un campo texto con nombre de instancia: alerta_txt
inicioCarga("foto.jpg"); //ejecuta la function con el nombre de la imagen.
// la función inicia la carga de la imagen
function inicioCarga(imagen) {
imagen_mc.loadMovie(imagen);
}
// el proceso siguiente controla que se cargue la imagen completa en el moviclip imagen_mc, cuando se haya cargado por completo, se invisibiliza el campo.
Por supuesto en el caso anterior también se podía usar el total del peso del archivo para testear que se haya cargado, este tutorial solo presenta otra opción posible, más sencilla.