2009-09-23 4 views
1

Bonjour à tous. J'ai un peu de "formation" à travailler avec Flex et Remote Data à partir de fichiers XML.HTTPService écouteur d'événement de sorte qu'il déclenche quelque chose lorsque la méthode ".send" obtient des données à partir de XML

Ceci est mon HTTPService

<mx:HTTPService id="loginData" url="com-handler/basic.xml" showBusyCursor="true"> 
</mx:HTTPService> 

J'ai un bouton et lorsque son cliqué son appel une fonction, qui appelle loginData.send et fait un peu IF condition, que si la condition repose sur les données renvoyées par loginData.

La condition ne fonctionne pas car elle est appelée juste à côté de la méthode loginData.send et .send n'a toujours pas renvoyé les valeurs du fichier XML. Mais si vous cliquez une seconde fois après le premier clic, la condition IF fonctionne. Donc, pour faire face à je voulais faire un eventListener de sorte que lorsque loginData.send a renvoyé les données du XML, il déclenche la condition IF. Mais je ne sais pas comment le faire.

Pouvez-vous m'aider?

Répondre

3

La méthode send de HTTPService renvoie un AsyncToken, auquel vous pouvez ajouter un Responder, ainsi que des données arbitraires. Ainsi, dans le gestionnaire de clic de bouton:

var responder:IResponder = new Responder(myResultFunction, myFaultFunction) 
var token:AsyncToken = myService.send(); 
token.addResponder(responder); 

De plus, le MXML peut déclarer un gestionnaire de résultat:

<mx:HTTPService id="myService" result="myResultHandler(event)"/> 

Un aspect intéressant de AsyncToken est qu'il est un objet dynamique, ce qui signifie que vous ca appliquez propriétés arbitraires: il

var responder:IResponder = new Responder(myResultFunction, myFaultFunction) 
var token:AsyncToken = myService.send(); 
token.addResponder(responder); 
token.myArbitraryProperty = "Whatever"; 
token.anotherProperty = someObject; 

maintenant, dans le myResultFunction vous pouvez accéder event.token.myArbitraryProperty pour une utilisation en collaboration nditionals ou tout ce dont vous pourriez avoir besoin.

+0

Cela a plutôt bien fonctionné. Je viens d'ajouter la condition IF le gestionnaire de résultat, et Plinn Christmas. –

+1

Oublié de dire ... Merci. –

+0

Très belle et utile réponse, merci, Joel! – fmarton

Questions connexes