Hola, tienes dos opciones,
Opción 1: Ver el
tutorial de Cristalab para hacer precargas.
Opción 2:
Paso 1:
Creas tu película (en escena diferente o en la misma, yo suelo hacerlo en una diferente escena más que todo por orden mío) con 2 frames y con 4 layers.
Paso 2:
Colocas los objetos en los layers quedando de la siguiente manera:
- Layer 1: Action Script (compuesto por dos "Blank Keyframes")
- Layer 2: Un cuadro de texto dinámico llamado "cargando" y se le coloca adentro "100 %"
para calcular el tamaño correcto del recuadro (ocupando sólo un Keyframe)
- Layer 3: Un MC con una animación de una barrita que crezca, esta animación estará
hecha desde el frame 0-100, este será la barra que indique cuanto habrá
cargado de la película(ocupando sólo un Keyframe y con nombre de instancia
"PreloaderBar")
- Layer 4: Este es opcional pues en este puede ir una imagen de fondo o un recuadro para
la animación del MC que contiene la animación de la barra(en este caso sería
mejor que estuviera en el layer 3 y la animación de la barrite en el layer 4)
Paso 3:
En el primer frame del layer de AS se coloca el siguiente código:
Código :
t = this.getBytesTotal();
l = this.getBytesLoaded();
p = (l * 100)/t;
punto = Math.round(p);
_root.cargando = (punto+1)+ " %";
_root.PreloaderBar.gotoAndStop(punto);
Paso 4:
Se coloca este código en el segundo frame del layer de AS:
Código :
t = _root.getBytesTotal();
l = _root.getBytesLoaded();
p = (l*100)/t;
tp = Math.round(p)
if (tp == 100) {
gotoAndPlay("intro", 1);
}
else
gotoAndPlay(1);
Y ya está listo para funcionar, hay dos cosas que se pueden cambiar. En la línea
if (tp == 100) {
gotoAndPlay("intro", 1);
}
"intro" se puede cambiar por otro nombre y en este caso está para cambiar de escena, también se puede colocar para que solamente cambie de frame y lo otro es que se puede hacer que las variables "t", "l" y "p" sean globales, de esta manera no habría que colocarlas necesariamente 2 veces, pero eso ya queda a criterio de cada quien.
Espero que les sirva y cualquier duda, no duden en preguntar.
Hasta luego y éxitos...
Por cierto, si se preguntaron porque es: "_root.cargando = (punto+1)+ " %";" y no solamente "_root.cargando = (punto)+ " %";" es porque cuando carga la película completamente lo último que se ve es 99% y pasa a la película pero a mí me gusta ver el 100% y por eso es que le sumo el 1, para que lo último que se vea se 100%.