Bonjour,
J'ai besoin de charger 2 ou 3 fichiers XML avant de lancer l'exécution d'un script. Le problème, c'est qu'ActionScript charge les fichiers de façon asynchrone. Connaissez-vous une méthode permettant d'attendre la fin du chargement d'un fichier, avant de continuer le scipt ?
La solution ci-dessous (trouvée sur Internet) est pas mal, mais dans mon cas (plusieurs fichiers à charger) rend le code un peu lourd en imbriquant les fonctions.
script principal
Code :
- var menuPage = new Page2(xmlFile);
- myInterval = setInterval(isLoadedXML, 10);
- function isLoadedXML(){
- trace("Main.isLoadedXML Drapeau: "+menuPage._Drapeau);
- if (menuPage._Drapeau == true){
- trace("c'est a true" );
- clearInterval(myInterval); //on efface l'interval pour arreter de tourner en rond
- afterLoadedXML(); //on appelle la fonction qui se charge du reste du traitement une fois que le fichier est chargé
- }
- }
-
- function afterLoadedXML(){
- trace("je continue mon traitement ...." );
- }
|
classe
Code :
- class Page2{
- //declare class attributes
- public var _xmlMenu:String;
- private var _document:XML;
- public var _Drapeau = false;
- //Constructor that
- function Page2(xmlMenu:String){
- _xmlMenu = xmlMenu;
- getXMLMenu();
- }
-
- private function getXMLMenu():Void{
- _document=new XML(); //we create the XML object
- _document.ignoreWhite=true;// useless spaces are erased
- _document.load(_xmlMenu);//we load the XML file
- _root.stop();
- trace("0" );
- var instance = this;
- // Once the file is loaded ...
- _document.onLoad=function(){
- trace("1" );
- instance._Drapeau = true;//j'indique que le fichié est chargé
- }
- }
- }
|
Merci,
benjamin