Comunidad de diseño web y desarrollo en internet online

problema con el evento ProgressEvent.PROGRESS

Citar            
MensajeEscrito el 17 Dic 2008 09:09 am
A raiz del post sobre miniaturas me ha surgido una duda (me temo que sin solución), pero ¿Hay algún modo de conocer el contenedor de un loader desde el evento ProgressEvent.PROGRESS?
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

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Dic 2008 11:36 am

When a loading operation is not complete, some properties of the contentLoaderInfo property of a Loader object are not available. You can obtain some properties, such as bytesLoaded, bytesTotal, url, loaderURL, and applicationDomain. When the loaderInfo object dispatches the init event, you can access all properties of the loaderInfo object and the loaded image or SWF file.

Así que, va a ser que no, :twisted: :twisted: gracias a todos los que leisteis el problema y un abrazo al resto

Por Eliseo2

710 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.