Código completo expuesto en el post
ClaseArchivoPrincipal
package cargaArchivos{
// IMPORTS:
import flash.display.MovieClip;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;
public class ClaseArchivoPrincipal extends MovieClip {
// VARIABLES:
private var rootPrincipal:MovieClip;
private var rootSecundario:MovieClip;
private var cargador:Loader;
// CONSTRUCTOR:
public function ClaseArchivoPrincipal() {
// llamar a la funcion que muestra el trace:
hacerTrace();
// anotar la referencia al root del archivo principal:
rootPrincipal = root as MovieClip;
// llamar a la funcion que se encargará de cargar el archivo secundario:
cargarArchivoSecundario();
}
// METODOS:
public function hacerTrace():void {
trace("=== hacerTrace - principal ===");
trace("this: "+this);
trace("root: "+root);
trace("parent: "+parent);
trace("==============================\n");
}
private function cargarArchivoSecundario():void {
trace("cargarArchivoSecundario");
// crear un nuevo Loader:
cargador = new Loader();
// agregar el cargador a la escena, como child del root:
this.addChild(cargador);
// anotar la URL del archivo secundario que queremos cargar:
var urlArchivoSecundario:String = "archivo_secundario.swf";
// generar el objeto URLRequest, con dicha URL:
var urlRequestArchivoSecundario:URLRequest = new URLRequest(urlArchivoSecundario);
// preparar eventos:
cargador.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
cargador.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
cargador.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
// intentar la carga del archivo:
try {
// efectivamente cargar el archivo:
cargador.load(urlRequestArchivoSecundario);
} catch (error:Error) {
trace("Error en la carga del archivo secundario.");
trace(error);
}
}
private function onCompleteHandler(loadEvent:Event):void {
trace("onCompleteHandler");
// guardar la referencia al root secundario:
rootSecundario = cargador.contentLoaderInfo.content as MovieClip;
}
private function onProgressHandler(progr_event:ProgressEvent):void {
trace("onProgressHandler");
// calcular el porcentaje de carga:
var porcentaje:Number = progr_event.bytesLoaded / progr_event.bytesTotal;
trace("porcentaje de carga: "+porcentaje);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ERROR: parece que no se encontró el archivo.");
trace("ioErrorHandler: " + event);
}
}// fin de clase
}// fin de paquete
ClaseArchivoSecundario
package cargaArchivos{
// IMPORTS:
import flash.display.MovieClip;
public class ClaseArchivoSecundario extends MovieClip {
// CONSTRUCTOR:
public function ClaseArchivoSecundario() {
hacerTrace();
}
// METODOS:
public function hacerTrace():void {
trace("=== hacerTrace - secundario ==");
trace("this: "+this);
trace("root: "+root);
trace("parent: "+parent);
// si hay padre:
if (parent) {
// ver si hay abuelo:
trace("parent.parent: "+parent.parent);
}
trace("this.root.loaderInfo.loader: "+this.root.loaderInfo.loader);
trace("==============================\n");
}
}// fin de clase
}// fin de paquete
¡Se aceptan comentarios!
However, at least for myself, I find it quite useful to read these comments that you have offered
Excelente ver como todo funciona.. sin embargo no pude integrarlo, pues me estaba pidiendo una clase main, mejor dicho..
proyecto
|—fla,swf <—(me pide una clase main.as que importe las otras 2)
|—–[cargaArchivos]
|———AS
podrías colocarlos archivos funcionales por favor.!! gracias :D
Hola Carlos. Mis disculpas por la demora. Recién ahora veo tu comentario. Publiqué esto hace mucho y ya no tengo los archivos originales. Si todavía necesitás ayuda enviame un mail y veo si puedo entender un poco mejor el problema. Saludos!