a)Les possibilités pour récupérer des données dans Flex

Il en existe 3, qui sont traitées tout au long de cette formation Flex :

1. Inclure les données XML dans le SWF à la compilation

2. Extraire les données XML dynamiquement à l’exécution (ce chapitre)

3. Utiliser des services web de type SOAP (chapitre 13 à venir)

En faite, il existe d’autres manières que nous ne traiteront pas, qui est la possibilité d’appeler directement des méthodes sur des objets java se trouvant sur le serveur avec “Flex Data Services”.

Ref : AMF, Flash remoting et AmfPHP

b) Inclure les données XML à la compilation

Pour se faire, Référencer le fichier XML dans la propriété source de la balise Model (voir PDF)

c)Récupérer les données XML à l’exécution

Récupérer les données XML via une requête HTTP simplement avec la balise HTTPService.

Le contenu du fichier XML est soit chargé directement, soit extrait si ce dernier est sur un serveur à distance.

Un exemple pour mieux comprendre :

<mx:HTTPService id="test" url="http://mydomain.com/myfile.xml" useProxy="false" />

Le fait de mettre le useProxy à faux permet accéder directement au fichier depuis le Flash Player. (Pour plus d’info, se reporter au PDF) Il faut savoir que l’URL peut être des données XML statiques ou dynamique

<mx:HTTPService id="test" url="http://mydomain.com/my.jsp" useProxy="false"/>

Puis utiliser la méthode send() pour envoyer la requête :

<mx:Button label="Retrieve Data" click="test.send()"/>

d) Gérer les résultats et les erreurs produits par les requêtes

Maintenant que nous avons crée notre objet HTTPService et envoyé la requête, il serait bien de récupérer les données XML de retour. Pour cela, accéder à la propriété « lastResult » de l’objet :

<mx:Label text="{test.lastResult}"/>

Pour plus d’infos sur les résultats retournés et les traitements associés, voir le PDF. De même que pour les erreurs, tout se passe comme pour les résultats, veuillez vous portez au PDF.

e) Passer des structures de données complexes aux composants MXML

Jusqu’à présent nous avons utilisé que des objets simples. Mais qu’en est-il des objets complexes ? Par exemple, un tableau d’objet. Il est en fait très simple de manipuler avec un HTTPService, contrairement au WebService. J’ai bcp galéré la dessus, mais nous reviendrons à ce débat dans un chapitre consacré au Web Service.

<mx:Script><![CDATA[ var myDataStructure:Object; ]]></mx:Script>

<mx:HTTPService id="httpTest" url="exampleHttp.php"/> <TestComponent id="firstApp" myDataStructure="{httpTest.lastResult}"/>

Le mot de la fin

L’un des points fort de Flex, est qu’il arrive à nous simplifier tellement la tâche qu’on se demande ce qui reste à faire. J’exagère mais bon…

Apres la mise en page rapide grâce au mode « design » et à ses nombreux objets facile d’accès, les développeurs n’ont plus besoin de se plaindre.

Vous trouverez dans le pack un dump de la bdd pour faire l’exercice se trouvant à la fin du PDF.

Si vous rencontrez des soucis, n’hésitez pas à répondre. Enfin, sachez que cet exercice est progressif, c-a-d que vous avez tout intérêt à commencer par le début, à moins que vous êtes un tueur en Flex, dans ce cas, je me tais.

Bonne lecture.

Télécharger le chapitre 10: Récupérer des données XML avec Flex