1) Tengo un archivo cargador_principal.swf que carga a otros archivos tema_1.swf, etc.
2) El archivo tema_1.swf corre sin ningun problema cuando se ejecuta solo.
3) En el archivo cargador_principal.fla en su document class tiene el siguiente codigo:
Código :
import LoadDisplayObject;
mc_temas.boton_tema1.addEventListener(MouseEvent.CLICK, f_tema1,false,0,true);
function f_tema1(event:MouseEvent):void {
var loader:LoadDisplayObject = new LoadDisplayObject(tema_1, true);
addChild(loader);
} La clase LoadDisplayObject.as que tiene el siguiente codigo:
Código :
package {
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
public class LoadDisplayObject extends Sprite {
private var _loader:Loader;
private var _loaderInfo:LoaderInfo;
private var _verbose:Boolean = false;
private var _loadProgressString:String = "";
private var _bytesLoaded:Number = 0;
private var _bytesTotal:Number = 0;
public function LoadDisplayObject(path:String, verbose:Boolean) {
_verbose = verbose;
_loader = new Loader();
_loaderInfo = _loader.contentLoaderInfo;
_loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress, false, 0, true);
_loaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
_loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
try {
_loader.load(new URLRequest(path));
} catch (err:Error) {
trace("No es posible cargar el contenido:\n" + err.message);
}
}
private function onComplete(evt:Event):void {
_loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
_loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
addChild(_loader);
dispatchEvent(new Event("displayObjectLoaded"));
}
private function onProgress(evt:ProgressEvent):void {
var loadPercent:int = Math.round((evt.bytesLoaded/evt.bytesTotal)*100);
_bytesLoaded = Math.floor(evt.bytesLoaded / 1024);
_bytesTotal = Math.floor(evt.bytesTotal / 1024)
_loadProgressString = ("Cargando tema: " + loadPercent + " % Cargado: " + _bytesLoaded + " KB de " + _bytesTotal + "KB");
if (_verbose) { trace(_loadProgressString); }
}
private function onIOError(evt:IOErrorEvent):void {
if (_verbose) { trace("Ocurrio un error en la carga::\n", evt.text); }
}
}
}Al ejecutar el cargador_principal y tratar de cargar el tema_1.swf marca el error:
Error #2044: IOErrorEvent no controlado: text=Error #2035: No se encuentra la dirección URL.
Al usar el Depurador el error aparece al terminar la funcion on Complete (Ver punto de corte) y pasa a la function deactivateHandler(event:Event) del FocusManager.as
Código :
private function onComplete(evt:Event):void {
_loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
_loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
addChild(_loader);
dispatchEvent(new Event("displayObjectLoaded"));
} // Este es el punto de corte Cuando paso del punto de corte a la siguiente instruccion del archivo FocusManager.as en su función deactivateHandler(event:Event)
Código :
private function deactivateHandler(event:Event):void {
var target:InteractiveObject = InteractiveObject(event.target);
}Cualquier sugerencias se agradece.
Saludos
