La clase pasada conlcuimos nuestra galería de productos con movies externas. Ahora puedes hacer galerías de imágenes y otras presentaciones utilizando y combinando las herramientas de las clases anteriores. Sin embargo, en el sitio de ejemplo de la clase pasaba las movies tardaban en cargar y no había forma de darse cuenta si los productos se estaban cargando o no y cuánto faltaba para que la finalice carga.
Para evitar marear al usuario de nuestro sitio tenemos que agregar preloaders o precargas. Hoy te voy a enseñar a hacer precargas fáciles.
La idea de una precarga es:
- Anunciar que algo se está cargando
- Dar una idea de cuánto falta para que se termine de cargar
El segundo punto no es absolutamente necesario, pero por una cuestión de respeto a nuestro usuario es mejor calmar su ansiedad y decirle cuánto falta. ¿Es realmente muy difícil hacerlo?
La forma que vamos a utilizar para orientarlo es a través de un porcentaje numérico o un elemento que se vaya completando a medida que se efectúa la carga. Con el tiempo y más experiencia en Flash podrás hacer cosas verdaderamente increíbles con las precargas. De momento…
¿Te acuerdas de la línea de tiempo? Bueno, la precarga va a estar siempre en el primer frame. Va a ser lo primero en cargarse y, al finalizar va a mostrar inmediatamente la movie que queremos ver.
Armado de la precarga: fase diseño
Abre el archivo FLA del primer detalle de la clase pasada, detalle1.fla (por si no lo tienes, haz clic aquí para descargar). En la línea tiempo podrás ver un solo frame con una imagen y texto. Como la precarga se muestra antes que la imagen (en el primer frame), debemos agregar un frame antes del que ya tenemos. Así nos queda el frame 1 vacío y el frame 2 con la imagen.
En el frame 1 voy a diseñar mi precarga. En este caso quiero que se vea, por un lado una línea que se vaya completando a medida que se cargue la movie y por otro lado un porcentaje que llegue a 100 en el momento también en que se termine de cargar esta película.
Por una cuestión de diseño, recuerda ubicar el diseño de la precarga en el centro de la imagen que se va a ver al cargar la movie completa.
¿Que quiero decir con esto? En este caso la imagen que quiero cargar no está en el centro de la página, sino a un costado. Por eso la precarga debe verse sobre ese costado, preferentemente en el centro, como en la imagen de arriba.
Mi diseño en el frame 1 es muy sencillo y se ve similar a la imagen de la derecha. Sólo un fondo, con un texto que dice “Cargando”. Tú puedes hacer lo que quieras…
Ahora vamos a crear una nueva capa a la que llamaremos “Precarga”. Debes ubicarla por encima de la capa “Detalle” que ya teníamos.
Línea de carga
En el primer frame de la capa “Precarga” (sólo en el primero) comenzaremos con la línea que se completa a medida que se carga la movie:
- Crea un rectángulo pequeño, que será el comienzo de la línea en un 1%.
- Convierte el rectángulo en gráfico y luego en movie (F8).
- Entra en esa movie, selecciona el gráfico y mueve el centro hacia el costado izquierdo del rectángulo. Esto es para que luego podamos agrandarlo únicamente hacia la derecha.
- Crea un nuevo fotograma clave en el frame 100.
- Dentro del frame 100 agranda el rectángulo cuando quieras, teniendo en cuenta que así se verá cuando alcance el 100% de carga.
- Sal de la movie (yendo a la escena original) y nombra esta movie como “linea_carga”.

No es necesario que completes exactamente estos pasos. Tampoco que hagas una “línea”, sino cualquier animación contenida en 100 frames. La idea es que el usuario de nuestro sitio no se aburra mientras se carga la pantalla… Créeme, con estas herramientas y un poco de imaginación se pueden hacer cosas sorprendentes. Sino échale un vistazo a los sitios de ejemplo que te propongo al final del artículo.
Porcentaje de carga
De nuevo en el primer frame de la capa “Precarga” vamos a generar el texto de porcentaje que aumenta de numeración a medida que se carga la movie, hasta llegar a 100%:
Crea un campo de texto en el lugar donde quieras que se muestre el porcentaje.- Selecciona el campo de texto y en la barra de propiedades, conviértelo en Dynamic Text. Esto nos permite que cambie de acuerdo al código ActionScript que agreguemos después.
- Nombra a este campo de texto como “porcentaje_texto”.
Para varias la tipografía, el color y el tamaño, basta con seleccionar el cuadro y darle las especificaciones correspondientes.
Código ActionScript para que todo funcione
Es el momento de meternos con el código. Para eso vamos a crear una nueva capa donde únicamente introduciremos código. Por eso la llamaremos… sí: “Código”
La única forma de que todo funcione es que a través de ActionScript, con el siguiente código:
function cargando() {
var total, cargados, porcentaje;
total=_root.getBytesTotal();
cargados=_root.getBytesLoaded();
porcentaje=Math.floor((cargados*100)/total);
porcentaje_texto.text=porcentaje+"%";
linea_carga.gotoAndStop(porcentaje);
if(cargados==total){
clearInterval(hiloPrecarga);
play();
}
}
var hiloPrecarga=setInterval(cargando,1);
stop();
Quizás tengas que arreglar el indentado o escribirlo nuevamente a mano, pero es exactamente esto lo que debes copiar en el frame 1 de la capa Código.
Ahora voy a explicarlo:
function cargando()
Declaro una nueva función: “precarga”, que va a ejecutarse hasta que se termine de cargar la movie.
var total, cargados, porcentaje;
Declaro las variables que voy a manejar: la cantidad total de bytes de la movie, los cargados hasta el momento y el porcentaje de bytes cargados al momento.
total=_root.getBytesTotal();
A nuestra variable “total” le asignamos el valor total de bytes que tiene la movie.
cargados=_root.getBytesLoaded();
A la variable “cargados” le asignamos el valor total de los bytes de la película que fueron cargados hasta el momento.
porcentaje=Math.floor((cargados*100)/total);
Ahora hacemos una regla de tres simple para asignarle a la “variable” porcentaje el valor que debería tener.
porcentaje_texto.text=porcentaje+"%";
Le decimos que el porcentaje me lo muestre en el campo dinámico de texto “porcentaje_texto”.
linea_carga.gotoAndStop(porcentaje);
Esto es para relacionar la línea que habíamos hecho con el número de porcentaje al momento. Así reproduce la movie “linea_carga” hasta el número de frame igual al número de porcentaje cargado.
if(cargados==total){
Si la cantidad de bytes cargados es igual a la cantidad total de bytes de la película…
clearInterval(hiloPrecarga);
…dejar de ejecutar la función Precarga…
play();
…e iniciar la movie (o sea, ir al frame 2)
var hiloPrecarga=setInterval(cargando,1);
La función setInterval le dice a la función “cargando” que se ejecute cada 1 milisegundo. De esta manera se muestra información actualizada.
stop();
Evita que la movie se inicie.
Otra cosa que debes tener en cuenta es que debes incluir un stop(); en el segundo frame, de lo contrario se reproduciría la función constantemente.
Ahora lo único que falta es pegar el primer frame de cada capa y pegarlos en todas las movies, para que todas tengan su precarga…
Haz clic aquí para ver la movie detalle1.SWF con la precarga
Haz clic para descargar el archivo original comprimido detalle1.FLA (100 kb)
Te aseguro que con este tutorial se pueden hacer precargas súmamente interesantes, sólo necesitas usar la imaginación. Para que te inspires, te dejo algunos sitios con precargas para destacar:
Bueno, eso es todo amigos… ¡Hasta la próxima!
| << CLASE ANTERIOR |
















Lunes, 21 de Abril de 2008 a las 14.34
Gracias por esta ayuda de la PreCarga la verdad es que esas paginas de muestra son un gran ejemplo a seguir…
Felicitaciones…
Martes, 22 de Abril de 2008 a las 12.46
Me encantaron las paginas de muestra, son inspiradoras, sobre lo que uno puede conseguir con imagiancion y muchas horas de esfuerzo
Lunes, 28 de Abril de 2008 a las 20.37
hola.
soy nueva en flash, y estoy intentano aprender. tengo una dudita en la linea de precarga en el punto 3 “Entra en esa movie, selecciona el gráfico y mueve el centro hacia el costado izquierdo del rectángulo. Esto es para que luego podamos agrandarlo únicamente hacia la derecha” podrias hacerme el favor de explicarme mas detalladamente. plis
Martes, 29 de Abril de 2008 a las 16.24
me gustyo mucho este tutorial tan practico. hice el ejercicio de precarga, pero no me funciona, me manda dos errores al correr el archivo:
1120: Acceso a una propiedad _root no definida.
1120: Acceso a una propiedad _root no definida.
la verdad no entiendo suii seguí los pasos como los marcan, ojalá y puedan ayudarme… gracias y felicidades nuevamente por el sitio.
Martes, 29 de Abril de 2008 a las 17.14
Hola Lyla… Te explico brevemente: todos los símbolos en Flash tienen un punto de ancla que viene predeterminado en el centro. Si dejo el punto allí, en el momento que quiera “estirar” o agrandar el símbolo, este lo va a hacer proporcionalmente para ambos lados del centro. En el caso de la barra de precarga, no quiero que se agrande para ambos lados, sino que quiero que se “estire” únicamente hacia la derecha. Por esta razón tengo que ubicar el punto de ancla del lado izquierdo. Te aconsejo que pruebes estirando distintos elementos flash y luego cambiándoles el punto de ancla…
Martes, 29 de Abril de 2008 a las 17.19
Hola Viridiana… ten en cuenta que la precarga la verás sólo cuando hayas subido el swf a la red. De otra forma no podrás ver la animación ya que no habrá nada que cargar
Es muy extraño el error que te ha dado. Si copias y pegas el código no creo que tengas problema… Suerte!
Miércoles, 18 de Junio de 2008 a las 15.46
Alejandra, no hace falta subirlo a la web para visualizar la precarga. Si apretas CTRL + ENTER, dos veces en flash, vas a poder verla. Salu2!
Viernes, 27 de Junio de 2008 a las 18.18
Excelente : material de apoyo,ojala lo puedan actualizar
para contar , con los últimos avances en este tema.
Gabriel.
Martes, 29 de Julio de 2008 a las 17.07
MUY BUENAS TARDEZ INGENIERO QUIERO PREGUNATARTE UNAS PREGUNTAS SOBRE FLASH 8 ESQUE NO PUEDO UTILIZAR MI PRECARGA YA LO HICE PERO TENGO SELECCIONAR DONDE DICE SIMILAR PRECARGA ALGO ASI PERO QUIERO QUE FUNCIONE BIEN CUAN LO EJECUTE PERO AL EXPORTAR YA NO APARECE MI PRECARGA
Miércoles, 30 de Julio de 2008 a las 09.50
Hola a todos…
Antes que nada quiero felicitar a las personas que han hecho posible tan maravilloso curso de flash.
Muchas gracias por compartir sus conociemientos con todos.
Saludos
Viernes, 1 de Agosto de 2008 a las 21.37
hola a todos los responsables de esta pagina, bueno les queria decir que cuando bajo el archivo en .fla no me abre en el flash asi que lo estoy haciendo con otros tipos de imagenes, y tengo un problema, en la aprte final donde dice “”"Ahora lo único que falta es pegar el primer frame de cada capa y pegarlos en todas las movies, para que todas tengan su precarga…”"” si alguien me podria ayudar en eso aqui les dejo mi correo, apizarro57@hotmail.com, muchas gracias
Miércoles, 6 de Agosto de 2008 a las 13.25
Hola a todos, estuve revisando este tutorial y esta muy bueno, pero me genera el mismo error que a Viridiana, el cual detallo acontinuación: Descripción: 1120: Acceso a una propiedad _root no definida. Origen: total=_root.getBytesTotal(); || Descripción: 1120: Acceso a una propiedad _root no definida. Origen: cargados=_root.getBytesLoaded(); , estoy usando el CS3. Mi teoria era que tal vez sea la versión del action script, estoy usando el 3.0, pero al cambiar la configuración de publicación para que use el 1.0 ó 2.0 no me muestra la animación completa se detiene en el frame 2, mas al usar el 3.0 me notifica el error que detalle arriba pero se muestra la animación completa. Si alguien me podria ayudar favor, dejo mi email: orphe@live.com , Saludos Roberti.
Miércoles, 6 de Agosto de 2008 a las 17.19
Bueno, bueno. Prometo ayudarlos en breve… Veré cuál es el problema.
Lunes, 18 de Agosto de 2008 a las 19.14
Hola, pude solucionar el problema de la carga del archivo de flah, sucede que habia colocado acciones en algunos frames como prueba y habia olvidado de eliminarlos, además en el frame 1 coloque stop(); por ello no pasaba de ese frame. Viridiana si podria compartirme tu archivo para revisarlo asi podría ayudarte, mi email es orphe@live.com. Saludos Roberti.