ActionScript 3 – Programmation séquentielle et orientée objet
316
Cette chaîne de caractères se décompose en trois parties concaténées grâce à l’opérateur +.
Puisque nous souhaitons voir s’afficher « Film : » en début de ligne, nous saisissons ce
préfixe entre guillemets.
La variable locale noms va successivement prendre pour valeur celles qui sont stockées
dans l’instance de la classe XMLList() grâce à la boucle for each().
Enfin, nous complétons le paramètre de la méthode appendText() par la chaîne \n qui
permet d’effectuer un saut de ligne à chaque itération.
Grâce à cette boucle, nous pouvons donc parcourir toutes les valeurs de l’instance XMLList()
et obtenir un affichage sous forme de liste.
Analyse de l’exemple 2
function affichagerSousForme2(evt:Event):void {
zoneAffichage.text="";
for each (var leNoeud in fichierXML.Film) {
zoneAffichage.appendText(leNoeud.Annee+" : "+leNoeud.@nom+"\n");
}
}
Dans le deuxième exemple (la fonction de rappel affichageSousForme2), vous constaterez
que nous ne faisons pas appel à la classe XMLList(). Nous pointons directement chaque
ligne du fichier XML en cherchant à lire les propriétés contenues dans les éléments
fichierXML.Film. Précisons qu’en faisant référence à cet extrait de code, nous pointons
vers tous les nœuds.
Essayez d’effectuer un trace(fichierXML.Film) et un trace(fichierXML.Film[1]) ; vous
comprendrez pourquoi les paramètres de la boucle for each() correspondent à tous les
nœuds de l’arborescence.
Voici un exemple de script complet :
var fichierXML:XML;
var chargeurDonnees:URLLoader = new URLLoader();
var adresseFichierXML:URLRequest = new URLRequest("cinema.xml");
function onComplete(event:Event):void {
fichierXML = new XML(chargeurDonnees.data);
btExemple1.addEventListener(MouseEvent.CLICK,affichageSousForme1);
btExemple2.addEventListener(MouseEvent.CLICK,affichageSousForme2);
}
chargeurDonnees.load(adresseFichierXML);
chargeurDonnees.addEventListener(Event.COMPLETE, onComplete);
Remarque
Consultez le script complet à la fin de l’analyse de cet exemple pour replacer cet extrait de code dans son
contexte.
Précédent

- 344/426

Suivant