Attendre la fin du chargement d'un fichier XML

Attendre la fin du chargement d'un fichier XML - Flash/ActionScript - Programmation

Marsh Posté le 01-03-2007 à 16:20:42    

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 :
  1. var menuPage = new Page2(xmlFile);
  2. myInterval = setInterval(isLoadedXML, 10);
  3. function isLoadedXML(){
  4.     trace("Main.isLoadedXML Drapeau: "+menuPage._Drapeau);
  5.     if (menuPage._Drapeau == true){
  6.         trace("c'est a true" );
  7.         clearInterval(myInterval); //on efface l'interval pour arreter de tourner en rond
  8.         afterLoadedXML(); //on appelle la fonction qui se charge du reste du traitement une fois que le fichier est chargé         
  9.     }
  10. }
  11.    
  12. function afterLoadedXML(){
  13.     trace("je continue mon traitement ...." );
  14. }


 
classe

Code :
  1. class Page2{
  2.     //declare class attributes
  3.     public var _xmlMenu:String;
  4.     private var _document:XML;
  5.     public var _Drapeau = false;
  6.     //Constructor that
  7.     function Page2(xmlMenu:String){
  8.         _xmlMenu = xmlMenu;
  9.         getXMLMenu();
  10.     }
  11.    
  12.     private function getXMLMenu():Void{
  13.         _document=new XML(); //we create the XML object
  14.         _document.ignoreWhite=true;// useless spaces are erased
  15.         _document.load(_xmlMenu);//we load the XML file
  16.         _root.stop();
  17.         trace("0" );
  18.         var instance = this;
  19.         // Once the file is loaded ...
  20.         _document.onLoad=function(){
  21.             trace("1" );
  22.             instance._Drapeau = true;//j'indique que le fichié est chargé
  23.         }
  24.     }   
  25. }


 
Merci,
benjamin

Reply

Marsh Posté le 01-03-2007 à 16:20:42   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed