estoy realizando una web en la que he puesto las distintas secciones en SWF diferentes, y las cargo con una transición (un fade out-fade in). El código del fader está en un archivo AS aparte, y me gustaría poner un preloader, pero se me está complicando.
el código de la transición que está en el archivo "loader.as" es el siguiente:
Código:
y en el swf que contiene los que llaman a cada sección, uso el siguiente código://MC donde cargaremos las diferentes secciones. _root.createEmptyMovieClip("conte", 9999); //MC "controlador" [ya veras porque] _root.createEmptyMovieClip("controler", 9998); //MCL var lm = new MovieClipLoader(); //variable necesaria _root.estado = 0; lm.loadClip("bienvenida.swf", "_root.conte"); function cargamc(mc) { //lo dejamos todo limpio delete _root.controler.onEnterFrame; delete _root.conte.onEnterFrame; _root.estado = 0; _root.conte.fader(100, 0); //este enterframe solo controla que a terminado una parte de la transicion para mandar a cargar la otra _root.controler.onEnterFrame = function() { //si se ha ido el que estaba mandar a llamar al otro if (_root.estado == 1) { _root.estado++; lm.loadClip(mc, "_root.conte"); } //si el que viene ya tiene alpha 100 que elimine este controlador if (_root.estado == 3) { _root.estado++; delete this.onEnterFrame; } }; //enterframe } MovieClip.prototype.fader = function(ini, fin) { //dos parametros, alpha de inicio y de final fax = ini; this._alpha = ini; this._visible = 1; //aki decidimos si sumamos alfa o la restamos if ((fin-ini)<=0) { goes = 1; xaf = -8; } else { goes = 2; xaf = +8; } //creamos un enterframe para tener que ejecutar la funcion UNA SOLA vez this.onEnterFrame = function() { this._alpha = fax; fax += xaf; //estos dos condicionales comprueba que se a llegado a los limites =) if (this._alpha<=fin && goes == 1) { delete this.onEnterFrame; _root.estado++; } if (this._alpha>=fin && goes == 2) { delete this.onEnterFrame; _root.estado++; } }; }; lm.onLoadInit = function(tm) { _root.conte.fader(0, 100); };
Código:
Ahora, ¿cómo puedo ubicar un preloader para cuando llame a cada sección?#include "loader.as"; seccion1_btn.onRelease = function (){ cargamc("seccion1.swf"); };
Al principio no me preocupa tanto, porque cargo sólo texto.
Es bastante código y ya probé varias formas, pero ninguna me funcionó.
Lo que hace ahora es:
- APRETO BOTÓN DEL MENÚ
- HACE FADE OUT AL SWF ACTUAL
- CARGA EL SWF NUEVO CON FADE IN
Y lo que quisiera que haga es:
- APRETO BOTÓN DEL MENÚ
- APARECE UN MOVIECLIP DE PRECARGA DEL SWF A CARGAR
- CUANDO TERMINA DE CARGAR EL NUEVO CLIP, RECIÉN AHÍ HACE FADE OUT
- CARGA EL SWF NUEVO CON FADE IN
Gracias!
Ricardo