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 : Sélectionner tout - Visualiser dans une fenêtre à part
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