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!!
| |||
¿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!! |
| |||
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:
- Posicionas el clip vacío donde quieras:_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.
Código:
- Controlas mediante un manejador de evento onLoad, las acciones una vez cargada toda la película:contenedor._x = 50; contenedor._y = 50;
Código:
- 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: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 } }
Código:
- Por último debes poner en marcha todo esto con la acción que hace cargar tu película externa en el contenedor: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... };
Código:
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. contenedor.loadMovie("miPeliculaExt.swf"); // Aquí asumo que se encuentra en la misma carpeta que la película actual. Última edición por Tigervlc; 26/05/2006 a las 06:39 |
| |||
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"; |