Look at "Bulk-Loader" framework, I use it for render queue.
http://code.google.com/p/bulk-loader/

Good luck :)

Alexandre.

On 17 fév, 14:59, metSyS <[email protected]> wrote:
> Else one. How can I understand when the image is loaded or all images
> is loaded. To change some boolean, like : imageLoaded:boolean=true or
> imagesLoaded:boolean=true.
>
> On 17 фев, 15:21, metSyS <[email protected]> wrote:
>
> > Thanks!=) ... really helps! Thanks a lot. Trying to create gallery.
> > Now learning XML/ and trying to create dynamic 3D gallery. And this
> > was last problem wich I have to solve.
>
> > On 17 фев, 15:07, miroslav <[email protected]> wrote:
>
> > > Hi,
>
> > > You have problem with using elementCounter public property.
> > > In showXML event handler you increment the elementCounter in for loop
> > > and then using it as index for the materialArray in ImageLoaded.
> > > Problem is that the loading of images is asynchronous operation and
> > > when the ImageLoaded handler gets called the elementCounter will be
> > > equal to xmlList.length().
> > > One quick solution for this would be to use one tempArray for holding
> > > the references to picLoader.contentLoaderInfo and when the ImageLoaded
> > > gets called you would use tempArray.indexOf( e.target ) as the index
> > > for the materialArray.
>
> > > Example:
>
> > > public var imageLoaders:Array = [];
> > > ...
> > > public function showXML(e:Event):void
> > >                 {
> > >                         xmlData=new XML(e.target.data);
> > >                         xmlList=xmlData.children();
> > >                         xmlListLength=xmlList.length();
> > >                         for (var i:int=0; i < xmlListLength; i++)
> > >                         {
> > >                                 var picLoader:Loader=new Loader();
> > >                                 picLoader.load(new
> > > URLRequest(xmlList[i].attributes()[0]));
>
> > > picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,
> > > ImageLoaded);
>
> > > imageLoaders.push( picLoader.contentLoaderInfo );
> > >                         }
> > >                 }
>
> > >                 private function ImageLoaded(e:Event):void
> > >                 {
> > >                        var planeMaterial:BitmapMaterial = new
> > > BitmapMaterial(Cast.bitmap(e.target.content));
>
> > > materialArray[imageLoaders.indexOf(e.target)]=planeMaterial;
>
> > >                        // Removing event handlers is good practice
>
> > > LoaderInfo(e.target).removeEventListener(Event.COMPLETE, ImageLoaded);
>
> > >                 }
>
> > > On Feb 17, 11:41 am, metSyS <[email protected]> wrote:
>
> > > > I have some problem. I'm loading some *.xml, get from there some
> > > > attribute in wich I have URL to my pictures. It works correct. After
> > > > it I want to load pictures and write them into array. I think the
> > > > problem is that cycle works faster then images loading. I need to run
> > > > the  cycle and complete the step only when image is loaded and have
> > > > wrote into array. Sorry for my bad english. Need help.
>
> > > > public var elementCounter:int=0;
> > > > ...
> > > > public function showXML(e:Event):void
> > > >                 {
> > > >                         xmlData=new XML(e.target.data);
> > > >                         xmlList=xmlData.children();
> > > >                         xmlListLength=xmlList.length();
>
> > > >                         for (var i:int=0; i < xmlList.length(); i++, 
> > > > elementCounter++)
> > > >                         {
> > > >                                 var picLoader:Loader=new Loader();
> > > >                                 picLoader.load(new 
> > > > URLRequest(xmlList[i].attributes()[0]));
> > > >                                 
> > > > picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,
> > > > ImageLoaded);
> > > >                         }
> > > >                 }
>
> > > >                 private function ImageLoaded(e:Event):void
> > > >                 {
> > > >                        var planeMaterial:BitmapMaterial = new
> > > > BitmapMaterial(Cast.bitmap(e.target.content));
> > > >                        materialArray[elementCounter]=planeMaterial;
> > > >                 }
>
>

Reply via email to