Bonjour,
Je dois charger plusieurs fichiers XML et si tous les fichiers ont été chargés correctement, lancer la suite de mon animation.
J'ai donc le code suivant:
Ma Classe pour charger un fichier XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import mx.events.EventDispatcher;
class fileXML{
	private var dispatchEvent:Function;
	public var addEventListener:Function;	
	var removeEventListener : Function;
 
	var docXML:XML;
	//Constructeur
	function fileXML(){
		docXML = new XML();
		mx.events.EventDispatcher.initialize (this);
	}
	//Choix d'un quizz
	function Load(file:String){
		var self:fileXML=this;
		docXML.ignoreWhite = true;
		docXML.load(file);
		docXML.onLoad = function(bSuccess:Boolean) {
			if(bSuccess) {	
				trace("ok");
				self.dispatchEvent ( {type : "onLoad"});
			}else{
				trace("error");
				self.dispatchEvent ( {type : "onError"});
			}
		};
	}
}
Et mon code d'appel sur plusieurs fichiers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var tabFile:Array=new Array("File1.xml","File2.xml","File3.xml");
var Success:Boolean=true;
for (var i=0;i<tabFile.length;i++){
	var file:fileXML=new fileXML();
	var listener:Object = new Object();
	listener.onLoad = function( evt:Object )
	{
		trace("ok");
	}
	listener.onError = function( evt:Object )
	{
		Success=false;
		trace("erreur");
	}
	file.addEventListener( 'onLoad', listener );
	file.addEventListener( 'onError', listener );
	file.Load(tabFile[i]);
}
if (Success){
	trace("Suite");
}
Ceci ne marche pas car il lance le chargement des fichiers...Success est à True donc il fait la suite....et seulement après il me dit qu'il y a une erreur dans le chargement d'un fichier...
Je souhaiterais qu'il attende le chargement du 1er fichier..; puis ensuite si cela c'est bien passé, charge le 2ème etc...
Mais je ne vois pas comment faire.
Merci