Hola.... Tengo el siguiente código. La idea es cargar unas imagenes a traves de XML para usarlas como material para una serie de planos que se montan dentro de un contenedor, para que ese contenedor tenga dos caras. Lo consigo, pero cada vez que se carga el documento las imágenes se cargan aleatoriamente sin respetar el orden que les doy en el XML.

Le he dado vueltas y vueltas pero llego hasta aquí. Muchas gracias por su ayuda.

XML:

Código XML :

<?xml version="1.0" encoding="utf-8"?>
<imagedata>
   <data imagepath="Image01.jpg" backimagepath="Image01.jpg" indice="1" />
   <data imagepath="Image02.jpg" backimagepath="Image02.jpg" indice="2"/>
   <data imagepath="Image03.jpg" backimagepath="Image03.jpg" indice="3"/>
   <data imagepath="Image04.jpg" backimagepath="Image04.jpg" indice="4"/>
   <data imagepath="Image05.jpg" backimagepath="Image05.jpg" indice="5"/>
   <data imagepath="Image06.jpg" backimagepath="Image06.jpg" indice="6"/>
....
</imagedata>


AS:

Código ActionScript :

//Aparecen una serie de contadores (j,k y contadorBack) que están inicializados con valor 0. No he puesto la parte de imports ni declaración de variables...
//Primero cargo el xml en el constructor

loader = new URLLoader();
         loader.load(new URLRequest("XML/ImagesData01.xml"));
         loader.addEventListener(Event.COMPLETE, initfront);


private function initfront(e:Event):void {
         
         XML_Load=new XML(e.target.data);
         
         lista =new XMLList (XML_Load.data.@backimagepath);
         indice=new XMLList (XML_Load.data.@indice);
         
         var long:int=XML_Load.data.length()
         
         
         for (var i:int = 0; i < long; i++) {
         loadimagedata = new Loader();
         cargadores.push(loadimagedata)
         cargadores[i].contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
         cargadores[i].load(new URLRequest("IMAGES/" + XML_Load.data[i].@imagepath));
         
         }
         
         
      }
            
      private function loaded(e:Event):void {
         bmd =Bitmap(e.target.content).bitmapData;
         bm = new BitmapMaterial(bmd);
         bm.interactive = true;
         bm.oneSide = true;
         bm.precise = true;
         materials.push(bm);
         
         loadBackimagedata = new Loader();
         cargadoresBack.push(loadBackimagedata);
         cargadoresBack[contadorBack].contentLoaderInfo.addEventListener(Event.COMPLETE, loadedBack);
         cargadoresBack[contadorBack].load(new URLRequest("IMAGES/" + lista[contadorBack]));
         
         contadorBack++;
         
      }
      
      private function loadedBack(e:Event):void {
         
         bmdBack =Bitmap(e.target.content).bitmapData;
         bmBack = new BitmapMaterial(bmdBack);
         bmBack.interactive = true;
         bmBack.oneSide = true;
         bmBack.precise = true;
         materialsBack.push(bmBack);
         poner ();
               
         }
      
      
      
      private function poner():void {
         
               
               do3d = new DisplayObject3D();
               do3d.useOwnContainer=true;
               
               p = new Plane(materials[j],100,100,quality,quality);
               p2 = new Plane(materialsBack[k],100,100,quality,quality);
               p.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler, false, 0, true);
               p2.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler, false, 0, true);
               k++;
               j++;
               do3d.addChild(p);
               do3d.addChild(p2);
               p2.rotationY=180;
               planes.push(p);
               planesBack.push(p2);
                               
   ///Aquí vendría un código para la colocación de los do3d                                 
               holder.addChild(do3d);
            
      }