TUTORIELS 
Exploiter un fichier XML sous Flash MX

Page 1 | 2

Comment utiliser ActionScript pour construire une animation Flash à partir de contenus stockés au format XML.
 (25 février 2003)
 

Ce tutoriel suppose des notions sur les langages XML et ActionScript, même si le premier n'est pas ici le sujet principal, et si le code ActionScript est expliqué pas à pas.

Nous allons construire un petit fichier XML très simple destiné à être exploité dans les deux programmes Flash, et dont voici le code:

(fichier datas.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>
  <sites>
    <site num="01" url="http://www.journaldunet.com">Journal Du Net</site>
    <site num="02" url="http://developpeurs.journaldunet.com">JDNet Développeurs</site>
    <site num="03" url="http://solutions.journaldunet.com">JDNet Solutions</site>
    <site num="04" url="http://www.linternaute.com">L'Internaute</site>
  </sites>

Faites en sorte de sauvegarder le fichier au format Unicode. Si cela n'est pas possible avec votre éditeur de texte, nous vous donnerons néanmoins une solution par afficher correctement les caractères spéciaux (accents, apostrophes).

Notre fichier XML créé, il ne nous reste plus qu'à l'exploiter. Sous Flash MX, créez un nouveau document et posez sur la scène, à l'aide de l'outil Texte, un champ texte dynamique et multiligne (pour le passer en dynamique, utilisez le menu déroulant dans le panneau Propriétés). Nommez-le, ainsi que son calque, texte. Créez un nouveau calque actions, et sur la première (et seule) image-clé, insérez le code suivant:

(image-clé 1 du calque actions)
donnees_xml = new XML();
donnees_xml.onLoad = function(ok) {
  if (ok) {
    _root.texte.text = this.toString();
  }
}
donnees_xml.load('datas.xml');

Lancez l'animation, et votre fichier XML devrait s'afficher dans le champ texte. Pour le moment, on ne se soucie pas des problèmes de caractères spéciaux.

Que vient-on de faire ? Nous avons utiliser un objet apparu avec Flash 5 et qui a été sérieusement optimisé en terme de vitesse pour Flash MX: l'objet XML(). C'est lui et ses méthodes qui vont permettre de manipuler des documents XML (et ses différents "vocabulaires", dont SVG notamment): lecture, modification, création...

Pour se servir de cet objet, il faut bien sûr tout d'abord en créer une occurence grâce au constructeur new. Nous nommons notre occurrence donnees_xml, le _xml final nous permettant d'afficher les méthodes de l'objet lorsque nous tapons "donnees_xml.", ce qui se révèle vite utile...

Tout comme pour l'objet LoadVars() (que nous avons vu dans un précédent article), nous utilisons la méthode load() pour chargement d'un document externe. Cette méthode ne prend comme argument que l'URL du fichier XML. Pour l'heure, notre fichier XML se trouve au même niveau (même répertoire, même domaine) que notre fichier Flash; nous verrons plus tard comment appeler un fichier XML en provenance d'un autre domaine.

Mais avant de charger notre fichier, nous devons préparer son arrivée, via la méthode onLoad, qui comme en JavaScript ne se déclenche que lorsque l'objet en question a terminé de charger un document. Nous déclarons cet événement comme étant une fonction, dont l'argument (ok) contiendra le résultat de l'événement (true si c'est un succès, false dans le cas contraire). Ainsi, quand notre fichier XML a été entièrement chargé (donc, quand l'événement onLoad est vrai), on envoie le contenu de ce fichier vers notre champ texte sous la forme d'une chaîne, à l'aide de la méthode XML toString();, qui convertit un noeud XML et tout ses descendants en une chaîne. Vous pouvez voir notre résultat ici.

Après cette familiarisation aux méthodes élémentaires, nous allons construire un menu dynamique à partir de notre fichier XML...

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page