¿Cómo puedo crear una barra dinámica de estado o carga en flash?

Como puedo crear una barra de estado en flash de esas que aparece antes de cargar una animación de Flash específica que dice: "Cargando XX%" o "Loading tanto %".

1 Respuesta

Respuesta
1
La forma que yo utilizo de generar los loading en flash es a través de escenas. No es conveniente trabajar con escenas salvo que lo utilices para esto. Una vez que tengas terminada tu película flash y lista para ser subida, lo que tienes que hacer es agregar una escena nueva y situarla por encima de la anterior. Como si desplazaras layers/capas la llevas con el mouse hasta que quede en primer lugar.
Ahora en esta escena nueva vas a agregar un campo de texto del tipo dynamic text/campo dinámico y le vas a asignar un nombre de variable. Para este caso vamos a usar blackdog como nombre.
Create un nuevo layer para ubicar las acciones. Asegurate que el campo de texto dure más de 5 frames. Luego en la capa de acciones pone el frame 1, 2 y 3 un keyframe en cada uno y en el frame 2 escribís el siguiente código:
Te voy a poner seguido de // doble barra los comentarios. Y cada ; punto y coma termina una linea. Respeta mayúsculas y minúsculas.
total= new String();
//declaro la variable total y le digo que es de tipo string.
total= getBytesTotal();
//le asigno a la variable total el numero de bytes total de la pelicula.
total2= new String();
total2= total / 1024;
//Le digo que la var total2 sea la var total dividido 1024 así paso esta millonada de bytes a Kb.
total3= new String();
total3= Math.round(total2);
//Le digo que var total3 siga siendo igual a total2 pero con esto del Math. Round hago que redondee los decimales.
cargado= new String();
cargado= getBytesLoaded();
//Hago lo mismo que con las demás pero esta me va a pasar los la cantidad de bytes que están siendo cargados.
cargado2= new String();
cargado2= cargado / 1024;
cargado3= new String();
cargado3= Math.round(cargado2);
blackdog= cargado3 + " Kb de " + total3 + " Kb";
//Ahora le estoy diciendo que en el campo de texto dinámico imprima la var cargado3 que agregue la palabra "KB DE " lo que quiero que sea literal lo pongo entre comillas y que luego imprima la var total3. Con el signo más + voy encadenando las var y los textos.
if (cargado3 == total3){
gotoAndPlay(4);
}
//Aca viene la condicion. Si cargado3 (cantidad de kb redondeado a números enteros que han sido cargado) es igual a total3 (cantidad de KB redondeados del total de la película) se vaya al frame 4.
El resto de la explicación es muy sencilla. En el frame 3 vas a poner un gotoAndPlay(2);
de esta manera te aseguras que si la condición esa no se cumple, o sea no han sido cargados todos los kb continué el cabezal avanzando y se encuentre con esta acción que lo haga volver a pasar actualizando las variables. Cuando se cumpla la condición va a saltear este gotoAndPlay(2) y se va a ir al 4. Esto quiere decir que ya esta todo cargado y en ese frame 4 o bien en otro posterior puede ser el 5 o el 6 lo mandas a la otra escena.
Ejemplo:
en el frame 6
gotoAndStop("Escena 2",1);
//Le digo que se detenga en el frame 1 de la escena2.
Fíjate de poner ahí en nombre exacto de la siguiente escena.
Le pongo gotoAndStop porque mi siguiente escena consta de un solo fotograma y si le pusiera play volvería a la escena de loading, si tu próxima escena tiene más de un fotograma ponele gotoAnd Play("Escena 2", 1);
Cosas a tener en cuenta:
-No pongas imágenes ni nada pesado, lo primero que se va a descargar sera esta escena y tiene que ser bien livianita.
-Si utilizas flash 5 copia el código utilizando el expert mode.
-Copiate el codigo y pegalo si queres borra lo que te puse con //.
-Esto se podría hacer de muchas formas y en tan solo 4 lineas de código y en un solo frame si utilizar la linea de tiempo, lo hago así para que entiendas como van cambiando las variables.
-Si estas utilizando objeto Sound() con sonidos vinculados y exportados al primer fotograma se van a cargar primero estos antes que el loading, trata de no usarlos para este caso.
Espero que te haya sido de ayuda, si quieres agregarle un barra de progreso mandame un mail a [email protected] que te mando un fla con algunas maneras de hacerlo. Si quisieras cambiar esto por un loading de porcentaje hacete el ejercicio, es la única manera de aprender. Sabes declarar variables, sabes dividirlas, multiplicarlas con el asterisco * y la formulita del porcentaje es muy sencilla.
Suerte!
Nico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas