Flash Remoting – Envoyer des requêtes en utilisant NetConnection
Tous les appels à des services Flash Remoting sont fait en utilisant une classe native de Flash Player appelée flash.net.NetConnection. La première étape est toujours de construire une nouvelle instance de NetConnection:
var netConnection:NetConnection = new NetConnection();
Ensuite, vous devez spécifier l'emplacement de la passerelle Flash Remoting. Vous pouvez le faire en appelant la méthode connect(), en passant l'URL de la passerelle:
netConnection.connect("http://www.server.com/flashremoting/gateway");
Appel de méthodes Flash Remoting
Vous pouvez appeler les méthodes Flash Remoting en utilisant la méthode call() sur un objet NetConnection. La méthode call() requiert, au minimum, que vous lui passiez deux paramètres: le nom de la méthode de service à appeler et un objet flash.net.Responder qui spécifie quel listeners doivent traiter la réponse.
Le nom de la méthode doit comprendre le nom complet du service et celui de la méthode, délimités par des points. Le nom du service est toujours le nom par lequel le service est connu par la plateforme. Généralement, c'est le nom complet de la classe ou un alias.
Par exemple, si le service est une classe Java appelée "com.java.Example", le nom du service serait "com.java.Example". Si la méthode du service est appelée testMethod, le nom complet de la méthode devrait être "com.java.Example.testMethod" (à spécifier en tant que premier paramètre de la méthode call().
La classe Responder permet de spécifier les listeners qui vont traiter la réponse de l'appel à la méthode du service. Le constructeur de Responder requiert au moins un paramètre, qui fait référence à la méthode listener qui va traiter la réponse. De manière optionnelle, vous pouvez spécifier un second paramètre qui fera référence à la méthode qui va traiter les réponses de type fault (en cas d'erreur).
Voici un exemple qui appelle la méthode d'un service et définit un handler pour la réponse:
netConnection.call("com.java.Example.testMethod", new Responder(resultHandler));
Passer des paramètres aux méthodes appelées par Flash Remoting
Quand la méthode d'un service attend des paramètres, vous pouvez passer ces paramètres via la méthode call(). Tout paramètre passé à la méthode call après les deux paramètres obligatoires seront passés à la méthode du service comme des paramètres.
Voici un exemple qui passe une String et un Number comme paramètre:
netConnection.call("com.java.Example.testMethod", new Responder(resultHandler), "a", 1);
Articles similaires
- Flex WebService en ActionScript – Envoyer des requêtes et traiter le résultat
- Flex URLLoader – Envoyer des requêtes et traiter le résultat (exemple)
- Flex External Interface – Utilisation générale d'ExternalInterface
- Flex ActionScript – Méthodes en ActionScript 3
- Flex ActionScript – Getter/Setter en ActionScript 3
Aucun trackbacks pour l'instant






9 avril 2009
Salut,
Bon début d'explication, dommage que tu ne proposes pas la suite, à savoir ce qui est renvoyé en retour, comment le traiter, dans le cas d'une erreur etc.
Mais bon, c'est déjà bien de trouver quelque chose fait en flash "pur" sur un blog spécialisé Flex
9 avril 2009
Salut,
effectivement, je n'ai pas grand chose en stock pour ce qui est du remoting, j'ai encore pas mal d'autres tutos à écrire avant ^^
Fabien
18 mai 2009
Encore moi,
Si tu reprends un jour ce tuto, ça serait bon de parler de l'envoi d'objets typés dans une classe perso
Voilà une bonne heure que je suis dessus, j'ai l'impression que je ne peux envoyer que des objets de classe "natives" à Flash (array, string, number …)
Avec mon objet perso, j'obtiens la célèbre erreur "NetConnection.Call.BadVersion"
Je sais, avec le tag remoting de Flex, ça passe, pour autant j'aimerais pouvoir le faire avec netConnection histoire de comprendre ce que je fais avant de n'utiliser que des composants tout fait
18 mai 2009
Salut,
je ne pense pas que je ferai encore des tutos sur le remoting, ou alors ce serait des traductions
Bonne chance
Fabien
18 mai 2009
Ben finalement, j'ai abandonné l'idée d'envoyer des objets typés custom vers amfphp
S'il ne devait y avoir qu'une raison, je dirais que pour tester le script PHP via le browser par exemple devient vite lourd si on prend des objets en entrée
A ce jour, je n'utilise les objets typés que dans le sens PHP >>> Flash player
Merci pour la réponse et bonne continuation