Trabajas con documentClass y no puedes realizar una precarga para tu página?




Esta es tu solución!!!!

1 Crea un archivo .fla aparte del que ya utilizas para tu página.

2 Crea otra capa ademas de la estandar. O sea que vas a usar 2 capas.

3 En la primera va el código(eso va después), y en la segunda colocas un recuadro de texto dinamico (centrado) y debajo de este crea un rectángunlo y lo tranformas en mc(movieClip) = F8.

4 El movieClip va a tener 3 capas, una para el codigo, otra para el recuadro vacio del rectángulo, y la última con una animacion de 100 fotogramas de forma que vaya llenando el rectángulo de algun color. En la primer capa (codigo) vas a poner un stop(); para detener la animacion. Extiende todas las capas con F5 hasta el fotograma 100.

5 Coloca un nombre de instancia a tu mc y otro al texto dinamico, en este caso cargador_mc y texto_txt respectivamente.

Si no entendist lo anterior, aca hay un tuto para guiarte:
ejemplo de como crear animacion de carga
Sino busca en Clab que hay varios.




6 Vamos al codigo. Primer fotograma, linea de tiempo principal, primer capa (codigo) presiona F9. Puedes copiar todo pero recomiendo que leas las explicaciones para saber como corregir y cambiar el codigo luego.



7 Primero un stop(); para detener la animacion por si no pusiste un stop antes.

Código :

stop();


8 Segundo, vas a poner la direccion y el archivo SWF que quieres que luego se cargue. La capeta de origen la defines en: Archivo, Preferencias de publicacion, Script(actionScrip3)(pestaña), Editar, Ruta Origen. Ahi eliges la misma donde tienes tus .fla, tus .as, tus imagenes, textos y demas de archivos para tu pagina. Ahi tiene que estar tus SWFs de carga y el de la pagina a cargar.
Y luego creas un loader para alojar tu SWF.

Código :

var direccionSWF:URLRequest = new URLRequest("tuSWFvaACA.swf");
var cargaSWF:Loader = new Loader();


9 Tercero, creas los listener para tu cargaSWF(loader), uno para el proceso en progreso(cargando) y el otro para el evento completo (listo).

Código :

cargaSWF.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, cargando);
cargaSWF.contentLoaderInfo.addEventListener(Event.COMPLETE, listo);



10 Cuarto, crea la funcion cargando(esta funcion se ejecuta como un ENTER_FRAME), definimos detro el porcentaje de carga con una simple ecuacion matemática y luego lo usamos para poner en el texto_txt(texto dinamico) el porcentaje de carga y en el cargador_mc (movieClip) detenemos la animacion en el frame que vaya cargando el porcentajeCarga creado antes.

Código :

function cargando(event:ProgressEvent):void
{
   var porcentajeCarga:Number = event.bytesLoaded / event.bytesTotal;
   porcentajeCarga = Math.round(porcentajeCarga * 100);
   
   texto_txt.text = porcentajeCarga + "% cargado";
   cargador_mc.gotoAndStop( porcentajeCarga );

}




11 Quinto, creamos al funcion listo donde lo primero a hacer es detener el listener de evento en proceso (cargando) para que no siga trabajando y consumiendo memoria. Luego borramos el texto dinamico y el movieClip aunque no se van a ver igual porque al cargarse el otro SWF lo superpone al momento.

Código :

function listo(event:Event):void
{
       cargaSWF.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, cargando);
   removeChild( texto_txt );
   removeChild( cargador_mc );
}


12 Sexto, cargamos el SWF en el loader y luego lo mostramos en pantall con el addChild.


Código :

cargaSWF.load(direccionSWF);

addChild(cargaSWF);



13 Septimo, guardamos y probamos. Fijemonos bien que coincidan el nombre del archivo cargado con el que se busca cargar. Revisemos el codigo. Y tengamos en cuenta que los dos archivos SWF tengan las mismas dimensiones(o sea si uno tiene 800x640 el otro que sea igual). Luego juguemos con otras animaciones para la carga. Visiten este link por gusto http://www.prettyloaded.com/ que ya ha sido recomendado en Clab pero para difundirlo y motivar mas a la creacion.

14 Eso es todo, a disfrutar del logro y a crear!! Ojala le sirva el aporte.

Código :

stop();

var direccionSWF:URLRequest = new URLRequest("tuSWFvaACA.swf");
var cargaSWF:Loader = new Loader();

cargaSWF.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, cargando);
cargaSWF.contentLoaderInfo.addEventListener(Event.COMPLETE, listo);

function cargando(event:ProgressEvent):void
{
   var porcentajeCarga:Number = event.bytesLoaded / event.bytesTotal;
   porcentajeCarga = Math.round(porcentajeCarga * 100);
   
   texto_txt.text = porcentajeCarga + "% cargado";
   cargador_mc.gotoAndStop( porcentajeCarga );

}
function listo(event:Event):void
{
       cargaSWF.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, cargando);
   removeChild( texto_txt );
   removeChild( cargador_mc );
}



cargaSWF.load(direccionSWF);

addChild(cargaSWF);