|
|
|
|
TUTORIEL FLASH |
|
|
|
Flash MX 2004 : utilisation du composant XML Connector |
Simplifiez-vous la gestion des données XML en reliant le composant XML Connector aux composants DataSet et DataGrid.
(11/03/2005) |
|
Les développeurs disposants
de la version MX 2004 Professionnal de Flash ont accès à un
nouveau composant facilitant grandement l'utilisation de fichiers
XML au sein d'applications Flash : XML Connector. Celui-ci se
propose de remplacer en l'améliorant la classe XML()
qui est utilisée depuis Flash 5, et qui mal configuré peut amener
à de fréquentes erreurs de traitement.
XML Connector peut être présenté comme un enrobage de cette
classe XML() dans un composant :
les fonctionnalités sont globalement les mêmes, mais la facilité
se trouve décuplée par le simple glisser-déposer du composant
sur la scène, là où le développeur Flash devait faire appel
à nombre de lignes ActionScript.
Le terme "Connector" indique qu'il sert à faire la liaison (donc
à connecter entre eux) les autres composants utilisés par l'application
et les données XML. La gestion des données XML, en lecture comme
en écriture, se fait au travers d'une API de type RPC (Remote
Procedure Protocol) implémentée dans le Flash Player.
Les méthodes
Le composant XML Connector fournit aux développeurs un bon nombre
de paramètres pour qu'il puisse le mettre en oeuvre correctement,
accessibles via le panneau de propriétés de l'éditeur Flash
(ou l'inspecteur de composant), ou en utilisant ActionScript.
Ces paramètres sont URL, direction,
ignoreWhite,
multipleSimultaneousAllowed
et suppressInvalidCalls.
URL contient l'adresse de la
source XML.
direction indique le type d'opération
à effectuer : send (envoi de
données), sendAndLoad (envoi
de données et réception d'un résultat) ou load
(chargement de données).
ignoreWhite a la même signification
que son homonyme au sein de XML() : il indique si les espaces
blancs (whitespace) du fichier XML doivent être pris
en compte (true) ou non (false).
multipleSimultaneousAllowed
autorise ou non, selon sa valeur, l'exécution de plusieurs opérations
en même temps.
suppressInvalidCalls, enfin,
fait que le Flash Player annule ou non une opération lorsque
celle-ci ne reçoit/envoi pas de données valides (non-XML).
Deux paramètres sont également accessibles par ActionScript,
mais pas par l'interface de Flash : params
sert à connaître/définir les paramètres à envoyer lors d'une
opération en envoi (send ou
sendAndLoad), results
contient les données XML chargées après une opération de chargement
(sendAndLoad ou load).
Associées
à ces propriétés, le composant fournit également trois évènements,
send, result
et status, et une méthode, trigger().
Cette dernière est le point central du composant : c'est elle
qui lance les opérations de liaisons entre le composant et les
données XML, et entre les composants eux-mêmes. Elle se charge
également de valider les données, et d'agir en conséquence.
L'évènement send est envoyé
quand les données sont prêtes à être transmises ; status,
quand l'opération est en cours de traitement ; result,
quand une opération s'est correctement accomplie.
Créer une liaison
Comme nous l'avons dit, XML Connector trouve toute son utilité
en combinaison avec les autres composants de données de Flash
MX04Pro. En combinant le composant XML Connector avec d'autres,
comme DataSet (pour créer des jeux de données) et DataGrid (pour
afficher ces données dans un tableau), la mise en oeuvre d'applications
faisant appel à des données XML externes devient très simple,
et ne nécessite quasiment pas d'appel ActionScript. Voici un
exemple permettant de lire un fichier RSS (donc, XML).
Dans un nouveau document Flash, glissez une occurrence des composants
XML Connector, DataSet et DataGrid sur la scène, et nommez-les
respectivement xmlc, dset
et dgrd.
Il vous faut ensuite récupérer le schéma de votre fichier XML.
Celui-ci peut-être généré directement par Flash à partir d'un
fichier exemple (une version statique locale d'un fichier XML
dynamique, au besoin). Le plus important est que le fichier
d'exemple contienne au moins deux entrées là où le document
a un potentiel de 1 à plusieurs entrées : Flash pourra ainsi
déterminer où il doit s'attendre à des éléments récurrents,
et agir en conséquence.
Le schéma se construit ainsi : sélectionnez xmlc,
puis dans le panneau Inspecteur de composant ouvrez l'onglet
Schéma. Sélectionnez "results: XML", car on indique ici les
données en entrée, et cliquez sur le bouton sur la droite, nommé
"Importer un schéma contenu dans un fichier XML". Sélectionnez
dans la fenêtre qui s'ouvre votre fichier XML statique d'exemple,
et Flash compose le schéma automatiquement.
Ceci fait, ouvre l'onglet Paramètres, pointez la propriété URL
vers votre fichier XML, et modifier direction pour qu'elle affiche
uniquement recieve.
XML Connector permet de récupérer les informations, mais pas
de les traiter (hors validation). Nous avons besoin pour cela
du composant DataSet, que nous allons lier à XML Connector ;
plus précisément, nous allons lier la propriété dataProvider
(qui indique la source des données a stocker) de DataSet, à
la propriété results (recevant
les données téléchargées) de XML Connector.
Sélectionnez donc dset, et dans
son inspecteur ouvrez l'onglet Liaisons. Cliquez sur le +, et
sélectionnez l'entrée dataProvider:
array. De retour dans l'onglet Liaisons, double-cliquez
sur bound to (en bas), sélectionnez
notre xmlc, et dans results:
XML, sélectionnez l'entrée item:
Array. Ces items du fichier XML correspondent aux entrées
du fichier RSS, ce que nous voulons afficher.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Reste l'affichage : il nous faut maintenant lier, de la même
manière, DataGrid à DataSet, ou plus précisément le dataProvider
de DataGrid au dataProvider
de dataSet. Passez à nouveau par la propriété bound
to.
Enfin, il nous faut activer l'opération : dans l'image-clef
du calque, placez l'appel suivant : xmlc.trigger();.
Si tout se passe bien, votre DataGrid devrait se remplir dès
le lancement de l'animation... |
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|