Bonjour,
Lors d'une phase d'identification, par exemple, j'utilise un remote object pour accéder à un service PHP. Dans cet exemple, je l'utilise pour verifier si le nom d'utilisateur et le mot de passe font bien parties de la liste des membres de ma table.
Jusque là tout va bien, si je fais un Alert.show(_isAdmin) à la fin de ma fonction CheckLoginResult, j'ai bien le booléen attendu.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /* Appel de mon service PHP */ public function checkLogin(user:String, pass:String):void { _service = new RemoteObject('amfphp'); _service.source = _source; _service.addEventListener(ResultEvent.RESULT, checkLoginResult); _service.addEventListener(FaultEvent.FAULT, errors); _service.getOperation("isAdmin").send(user, pass); } /* Récupération du résultat */ private function checkLoginResult(event:ResultEvent):void { _service.removeEventListener(ResultEvent.RESULT, checkLoginResult); _isAdmin = event.result; }
Maintenant, voilà la problème :
Lorsque je veux utiliser ce booléen pour conditionner la validation de mon formulaire de login, on a l'impression que la variable "_isAdmin" n'est pas mis à jour tout de suite.
En effet, dans l'exemple (url : http://nicolasleborgne.dyndns.org/remote), on peut voir que la première fois que l'on valide l'identification, on atterit sur message d'erreur. Par contre, simplement en re-cliquant sur le bouton de validation, le formulaire disparait signifiant que l'identification est correcte.
En résumé, et après debug, au premier clic, _isAdmin = false, et au deuxième clic, _isAdmin = true.
J'ai fait pas mal de recherches (notamment sur le fait que l'utilisation de ce genre de services est asynchrone), mais je n'arrive toujours pas à régler le problème.
En espérant vivement que quelqu'un puisse m'apporter une réponse.
Merci ;)