Foros del Web » Creando para Internet » Flash y Actionscript »

¿Cómo se hace un preload?

Estas en el tema de ¿Cómo se hace un preload? en el foro de Flash y Actionscript en Foros del Web. Hola amigos: Quiero que en mi página de flash, aparezca la típica pantalla de ...cargando... hasta que no se haya cargado completamente mi película. Pero ...
  #1 (permalink)  
Antiguo 26/05/2006, 06:30
 
Fecha de Ingreso: abril-2006
Mensajes: 18
Antigüedad: 11 años, 7 meses
Puntos: 0
¿Cómo se hace un preload?

Hola amigos:
Quiero que en mi página de flash, aparezca la típica pantalla de ...cargando... hasta que no se haya cargado completamente mi película. Pero no veo por ninguna parte una instrucción ´que me pueda ayudar...
¿qué hago?

Gracias!!
  #2 (permalink)  
Antiguo 26/05/2006, 07:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 14 años, 6 meses
Puntos: 3
no es tan difícil. A ver un ejemplo sencillito:

- te creas un clip de película que tenga forma de barra horizontal con la longitud deseada cuando la carga es al 100%, llámale por ejemplo barra a la instancia. Para que quede mejor la animación, asegúrate mediante la herramienta tranformar que el punto de registro blanco esté a la izquierda. Así cuando la barra empiece a alargarse, lo hará desde su extremo izquierdo y no desde el centro por defecto.

- En la misma línea de tiempo, puedes crear el clip contenedor de tu película a cargar, tanto en tiempo de edición como de ejecución. Si lo haces en tiempo de ejecución, sería crear un clip vacío, colocarlo donde desees en el escenario, y cargarle la película swf externa (aquí asumo que la carga se realiza en la línea de tiempo principal:

Código:
_root.createEmptyMovieClip("contenedor", 10); // La profundidad 10 suele ser habitual, cuanto mayor, más por encima estará un mc de otro, y cuidado de no usar iguales profundidades para diferentes mc's a menos que quieras sustituir uno por otro.
- Posicionas el clip vacío donde quieras:

Código:
contenedor._x = 50;
contenedor._y = 50;
- Controlas mediante un manejador de evento onLoad, las acciones una vez cargada toda la película:

Código:
contenedor.onLoad = function(exito) {
    if (exito) {
         // Acción que desees realizar, por ejemplo, hacer invisible la barra de carga:
         barra._visible = false;
    } else {
         // Avisar de algún modo del error de carga de la película
    }
}
- Igualmente, tienes que tener un control sobre la barra de progreso de forma que cambie según el proceso de carga de la película. Puedes elegir el evento EnterFrame y su manejador de eventos onEnterFrame, que es el más usado habitualmente, aunque también se podría usar un intervalo de tiempo especificado:

Código:
barra.onEnterFrame = function() {
     var total:Number = contenedor.getBytesTotal(); // Bytes totales a cargar
     var actuales:Number = contenedor.getBytesLoaded(); // Bytes cargados actualmente
     var porcentaje:Number;
     
     // Escalar horizontalmente la barra de progreso en proporción con el porcentaje de carga:
     porcentaje = (actuales/total) * 100;
     this._xscale = porcentaje; // La barra se contrae horizontalmente conforme al porcentaje
     // también puedes usar algún campo de texto dinámico para reflejar el porcentaje numérico de carga, o el nro de bytes cargados...
};
- Por último debes poner en marcha todo esto con la acción que hace cargar tu película externa en el contenedor:

Código:
contenedor.loadMovie("miPeliculaExt.swf"); // Aquí asumo que se encuentra en la misma carpeta que la película actual.
Bueno, espero no haberme dejado nada o haber cometido un error, que lo he hecho a pelo y aquí no hay depurador, pero la mecánica básica es esa.

Última edición por Tigervlc; 26/05/2006 a las 07:39
  #3 (permalink)  
Antiguo 19/06/2006, 03:48
 
Fecha de Ingreso: enero-2006
Mensajes: 143
Antigüedad: 11 años, 11 meses
Puntos: 0
GRacias por estos sccripts, la verdad es que me han solucionado bastante...

Kiero aportar algo, sencillito pero algo:

En una nueva capa puedes poner un texto dinámico con nombre de instancia "carga" por ejemplo, y luego es tan sencillo como añadir estas líneas al script que declara la x_scale de la barra:

Código:
with (carga){
		carga.text = porcentaje + "% cargado";
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:01.