remoteobject : sortir du mode asynchrone ?
Bonjour,
j'étends actuellement un validateur afin de bloquer l'envoi du formulaire si l'utilisateur entre un pseudo déjà en base (unicité du pseudo).
Voici une partie du code incriminé :
Code:
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 29 30 31 32
|
...
override protected function doValidation(value:Object):Array
{
_ro = new RemoteObject();
_ro.destination = "zend";
_ro.source = "ServiceClasse";
_ro.addEventListener(ResultEvent.RESULT, result);
_ro.addEventListener(FaultEvent.FAULT, fault);
_ro.isUniquePseudo(value);
var universCap:String = value.univers.charAt(0).toUpperCase() + value.univers.substr(1, value.univers.length - 1);
if(_retour == false)
_results.push(new ValidationResult(true, null, "PasUnique", "Le pseudo entré existe déjà pour l'univers "+ universCap));
return _results;
}
private function result(event:ResultEvent):void
{
_retour = event.result as Boolean;
}
private function fault(event:FaultEvent):void
{
_results.push(new ValidationResult(true, null, "ErreurServeur", "Une erreur serveur est survenue lors de la validation du compte"));
}
... |
Le problème est le suivant : du au mode asynchrone (?) mon attribut _retour est mis à jour après mon test if(_retour == false) ce qui fait que je passe toujours dans ce if...
Comment faire pour que que ma fonction result soit executée avant mon test du if ? En gros que mon événement soit écouté avant mon if ?
Merci de votre aide