Un ejemplo:
tenemos
Código :
item(MovieClip) |------loader (Loader) |------preloader (TextField)
Código ActionScript :
package
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.display.LoaderInfo;
public class Main extends MovieClip
{
public function Main()
{
var item_mc:MovieClip = new MovieClip();
item_mc.id = 0;
//Creo un loader DENTRO de item_mc
var loader_ld:Loader = new Loader();
loader_ld.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderOnProgress);
loader_ld.contentLoaderInfo.addEventListener(Event.INIT, loaderOnInit);
loader_ld.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderOnError, false, 0, true);
item_mc.addChild(loader_ld);
//creo un preloader dentro de miniatura_mc
var preload_txt:TextField=new TextField();
preload_txt.name = "preload";
item_mc.addChild(preload_txt);
//Finalmente añado el item ;
addChild(item_mc);
//y cargo la imagen
loader_ld.load(new URLRequest(".images/imagen01.jpg"));
}
private function loaderOnInit(e:Event):void
{
var item:MovieClip=MovieClip(e.target.loader.parent)
var preload:TextField = TextField(item.getChildByName("preload"))
preload.text = "Fin";
trace(item.name.toString());
}
private function loaderOnProgress(e:ProgressEvent):void
{
var bCargados:Number = e.bytesLoaded;
var bTotales:Number = e.bytesTotal;
trace(bCargados.toString());
}
private function loaderOnError(event:IOErrorEvent):void {
trace("Fichero no encontrado");
}
}
DENTRO del loaderOnInit puedo acceder sin problemas a "item", y a "preload", pero DENTRO del loaderOnProgress, no tengo acceso a nada más que los bytes cargados y totales. Eviste el e.target.object que es del tipo LoaderInfo, pero es a lo más que consigo llegar
