Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/05/2006, 06:31
Tigervlc
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 20 años, 10 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 06:39