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

Preloader a una transición entre swf

Estas en el tema de Preloader a una transición entre swf en el foro de Flash y Actionscript en Foros del Web. Hola, 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 ...
  #1 (permalink)  
Antiguo 07/08/2009, 16:28
 
Fecha de Ingreso: enero-2008
Mensajes: 10
Antigüedad: 16 años, 10 meses
Puntos: 0
Preloader a una transición entre swf

Hola,
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:
//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);
};
y en el swf que contiene los que llaman a cada sección, uso el siguiente código:

Código:
#include "loader.as";
seccion1_btn.onRelease = function (){
	cargamc("seccion1.swf");
};
Ahora, ¿cómo puedo ubicar un preloader para cuando llame a cada sección?
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
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 16:19.