[FLASH 8] [XML] Problème avec XML.load() asynchrone
Bonjour,
Je suis en train d'écrire une classe ActionScript externe (nommée SQL) servant à la gestion des intéractions XML avec un serveur PhP-MySQL.
L'objet SQL contient une propriété "resultat" qui est un objet XML qui reçoit le XML d'un sendAndLoad.
Pour initialiser cette propriété, j'utilise une fonction getXML que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public function getXML():Boolean {
var XMLtemp:XML = new XML(this.texteRequete); // le XML qu'on envoie au serveur en POST
var chargementOK:Boolean = true;
this.resultat.onLoad = function (success:Boolean) {
if (success) {
trace("Fichier bien téléchargé");
if(this.resultat.status != 0) // Si le XML est mal formé
chargementOK = false;
} else {
trace("Fichier mal récupéré!");
chargementOK= false;
}
};
XMLtemp.sendAndLoad("http://localhost/monfichier.php", this.resultat); // Envoi de la requête au serveur qui va renvoyer un résultat
return chargementOK;
} |
Ma fonction renvoie un booléen en fonction du résultat de l'opération, qui permettra ensuite de l'extraire en tant que XML, tableau ou chaine de caractères avec les méthodes SQL.asString(), .asXML() ou .asArray().
Mon problème : la méthode XML.load() est asynchrone, ce qui fait que l'on passe directement à "return chargementOK" avant même que le XML ne soit chargé correctement. Hors, évidemment, comme les méthodes asString, asXML et asArray se servent de cette fonction getXML, elles renvoient toutes des erreurs.
J'ai bien essayé de mettre un while(this.resultat.loaded != true) mais j'obtiens une boucle infinie :-/
Si quelqu'un a une idée, je lui en serais très reconnaissant! ;)