A ver... pasito a pasito
1- Pelicula nueva vacia
2- En el primer fotograma colocas un
stop()3- Creas un movieclip para el preload. Lo más fácil: En una capa pones una interpolación de una barrita que dure
100 fotogramas.... en otra capa colocas un texto dinámico con nombre de instancia "
cargando"
4- Este movieclip lo colocas en la escena y le das el nombre de instancia "
preload"
5- Creas un nuevo movieclip vacio y lo añades a la escena tantas veces como peliculas vayas a cargar... a estas instancias las llamas "
contenedor1", "
contenedor2", "
contenedor3", etc... y las situas en el lugar donde tengan que aparecer las peliculas. (esto lo podrias hacer por programación con
createEmptyMovieClip pero si no controlas mucho la progrmación mejor lo haces manualmente...)
6- añades este código al fotograma
Código :
var list_swfs:Array = ["peli1.swf", "peli2.swf", "peli3.swf"];
var list_nombre:Array = ["pelicula 1", "pelicula 2", "pelicula 3"];
var list_clips:Array = ["contenedor1", "contenedor2", "contenedor3"];
Estos son los listados de peliculas a cargas, del nombre que saldrá en el preload, y del movieclip en el que lo vas a cargar... Estos listados tambien lo podrias rellenar leyendo la información de un xml, pero si no sabes como... mejor lo rellenas manualmente...
7- añades esto otro:
Código :
var cargando:Number = 0;
cargaMultiple();
La variable que indica el numero de pelicula que se va a cargar. (Empieza por cero por que el primer elemento de un Array es el numero 0 no el 1)
Se hace la llamada a la función que
carga las peliculas.
8- Hacemos el
preloadCódigo :
var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
9- Añadimos los eventos al preload
Código :
function onLoadStart(clip:MovieClip) {
clip._visible = false;
}
para que cuando se empiece a cargar la pelicula esta que haga invisible (solo queremos que se haga visible cuando esten todas cargadas, no?)
Código :
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
porcentaje = Math.round(bytesLoaded/bytesTotal*100);
preload.gotoAndStop(porcentaje);
preload.cargando.text = "Cargando pelicula "+list_nombre[cargando];
}
Esto controla el clip de preload.
Calcula el porcentaje de la carga realizada y manda el movieclip "preload" al fotograma con ese valor... por eso este movieclip a de tener 100 fotogramas. Si se ha cargado un 67% de la pelicula el movieclip estará en el fotograma 67, ok?
Y en el texto dinámico colocará el texto "cargando pelicula 1". obtiene el nombre del array
listnombre segun la posición del clip que se esta cargando...
Código :
function onLoadInit(clip:MovieClip) {
cargando++;
cargaMultiple();
}
Esto se ejecuta cuando se acaba de cargar la pelicula...
Sumas un valor a la variable
cargando y vuelvas a hacer una llamada a la función de carga, para cargar la siguiente pelicula...
10- Ahora solo falta la
función de cargaCódigo :
function cargaMultiple() {
if (cargando<list_swfs.length) {
precarga.loadClip(list_swfs[cargando], list_clips[cargando]);
} else {
for (i=0; i<list_clips.length; i++) {
eval(list_clips[i])._visible = true;
}
play();
}
}
con el
if controlas si se han cargado todas las peliculas... si la variable cargando es más pequeña que la cantidad de peliculas dentro de array
list_swfs entonces carga la pelicula buscando en los arrays el nombre del fichero y el nombre del movieclip en el que cargarlo segun su valor.
En el caso en que la variable no sea más pequeña es que ya se han cargado todas...
Entonces con el bucle haces todos los movieclips visibles.
Además le he puesto un
play() con lo que la pelicula pasaría al fotograma 2... y ahi ya te montas la pelicula que te de la gana...
Y eso es todo...
fácil, no?
salud2