Order issue when displaying pictures loaded from an XML file

Hi,

Just a little problem a bit painful:

  • loading pics from paths in an XML file,
  • once loaded they are positionned one on the right of the other (depending on their specific width) as thumbnails in the bottom of the screen,
  • weirdly they don’t display the way they should, never in the same order and not following at all the xml order (maybe the loading order??)

Anybody’s got any idea to fix this one?
My code:

private function parseXML(xmlData:XML):void {
			var XMLDoc:XMLDocument = new XMLDocument();
			XMLDoc.ignoreWhite = true;
			var list:String = xmlData.toXMLString();
			XMLDoc.parseXML(list);
			arrayPics = XMLDoc.firstChild.firstChild.childNodes;
			var countPicts:uint;
			var nbPicts:uint = arrayPics.length;
			var thumbnailName:String;
			
			//trace(nbPicts);
			for(countPicts=0;countPicts<nbPicts;countPicts++)
			{
				arrayPicsId[countPicts] = arrayPics[countPicts].attributes.id;
				arrayPicsTitle[arrayPicsId[countPicts]] = arrayPics[countPicts].attributes.title;
				arrayPicsDesc[arrayPicsId[countPicts]] = arrayPics[countPicts].attributes.desc;
				thumbnailName = arrayPicsId[countPicts];
				thumbnailURL = rootPictsPath+thumbnailName+"a.jpg";
				
				var loaderThumbnail:Loader = new Loader(); //conteneur pour chaque image
				loaderThumbnail.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbnailLoaded); 
				instanceTn = loaderThumbnail.name;
				numInstanceTn = instanceTn.slice(8,instanceTn.length);
				arrayPicsInstance[numInstanceTn] = thumbnailName;
				loaderContext = new LoaderContext(); 
				loaderContext.checkPolicyFile = true; 
				loaderThumbnail.load(new URLRequest(thumbnailURL),loaderContext); //chargement de l´image
			}
		}
		
		
		private function onThumbnailLoaded(evt:Event):void
		{
			if (containerThumbnails.contains(messageLoadingTn)) //si le conteneur de vignettes contient le message de chargement
			{
				containerThumbnails.removeChild(messageLoadingTn); //alors il est supprimé de l´interface
			}
			containerThumbnails.addEventListener(Event.ENTER_FRAME, onMoveThumbnails); 
			containerThumbnails.addEventListener(Event.ADDED, onThumbnailAdded); //abonnement du conteneur des vignettes à l´événement Event.ADDED
			
			var loaderThumbnail:Loader = evt.target.loader; //conteneur de l´image
			ratioTn = loaderThumbnail.height / heightThumbnail; //ratio pour le redimensionnement des images
			loaderThumbnail.width /= ratioTn; //largeur de la vignette
			loaderThumbnail.height /= ratioTn; //hauteur de la vignette
			containerThumbnails.addChild(loaderThumbnail); //ajout de la vignette dans le conteneur
		}		
			
		//thumbnails position
		private function onThumbnailAdded(evt:Event):void
		{
			var loaderThumbnail:Loader = evt.target as Loader; //la vignette qui est ajoutée
			var containerTn:Sprite = evt.currentTarget as Sprite; //le conteneur des vignettes
			containerTn.buttonMode = true ;
			var index:int = containerTn.getChildIndex(loaderThumbnail); //l´index dans la liste d´affichage
			
			if(index != 0) //si la vignette n´est pas la première
			{
				var previousX:Number = containerTn.getChildAt(index - 1).getBounds(containerTn).right; //coordonnée X du côtét droit de la vignette précédemment ajoutée
				loaderThumbnail.x = previousX + gapThumbnails; //positionnement de la vignette 10 pixels après la vignette précédente
			}
			loaderThumbnail.addEventListener(MouseEvent.MOUSE_OVER, onThumbnailOver);
			//loaderThumbnail.addEventListener(MouseEvent.MOUSE_OUT, onThumbnailOut); 
			loaderThumbnail.addEventListener(MouseEvent.CLICK, onThumbnailPress); 
		}

Thanks for your help.