ActionScript 3 – Programmation séquentielle et orientée objet
298
Vous noterez que nous faisons appel à la classe URLRequest() afin d’obtenir une instance
du même type, car la méthode load() de la classe URLLoader() s’attend à un paramètre de
ce type. Par ailleurs, nous déclarons en début de script une variable intitulée fichierXML,
mais nous l’initialiserons uniquement lorsque les données seront chargées.
Avant de demander le chargement des données, nous définissons la fonction de rappel qui
va être appelée lorsque l’événement Event.COMPLETE sera effectif (lorsque le chargement
des données XML est terminé et constaté).
function onComplete(event:Event):void {
fichierXML = new XML(chargeurDonnees.data);
zoneAffichage.text = fichierXML;
}
Quel rôle joue le contenu de la fonction onComplete ? Vous noterez que la variable que
nous avions déclarée dans la première ligne du script est enfin initialisée, afin que nous
puissions l’utiliser pour lire le contenu du fichier XML. Mais pour cela, nous avons dû
faire appel à la propriété data de la classe URLLoader, ce qui permet d’accéder aux données
chargées.
Maintenant que nous avons tout déclaré et initialisé, nous faisons appel à la méthode load()
de la classe URLLoader() afin que les données contenues dans le fichier franceregions.xml
soient chargées. Nous lançons ensuite l’écouteur de fin de chargement.
chargeurDonnees.load(adresseFichierXML);
chargeurDonnees.addEventListener(Event.COMPLETE, onComplete);
Attention
Contrairement à l’AS1/AS2, l’instance de la classe XML que nous avons déclarée et que nous allons initialiser ne va pas faire appel à la méthode load() qui n’existe plus. La classe XML() n’est plus du tout la
même que celle que nous utilisions en AS1/AS2. Si vous souhaitiez retravailler avec cette dernière, il
faudrait instancier la classe XMLDocument(). Bien sûr, nous vous déconseillons de l’utiliser car elle ne
présente pas les mêmes avantages et facilités d’exploitation d’une arborescence XML que ceux qu’offre la
nouvelle classe de l’AS3.
Le nom de la fonction de rappel
Dans cet exemple, le nom de la fonction est onComplete, mais nous aurions pu en choisir un autre. Vous
devez simplement retenir que le terme ne doit pas contenir de caractères accentués ou spéciaux, ni
d’espace. Il ne doit pas non plus commencer par une majuscule. Si vous préférez choisir un nom français,
c’est donc tout à fait possible, comme : function chargementTermine (event:Event):void
Pour information
Un certain nombre de développeurs prennent et ont pris l’habitude de déclarer les fonctions qui s’exécutent à
la fin d’un chargement de données avant de faire appel à la méthode dédiée (load() dans le cas du XML).
Mais tant que les débits Internet seront plus lents que la vitesse d’exécution d’une ligne d’instruction par
un microprocesseur, cela n’a pas d’importance.
298
Vous noterez que nous faisons appel à la classe URLRequest() afin d’obtenir une instance
du même type, car la méthode load() de la classe URLLoader() s’attend à un paramètre de
ce type. Par ailleurs, nous déclarons en début de script une variable intitulée fichierXML,
mais nous l’initialiserons uniquement lorsque les données seront chargées.
Avant de demander le chargement des données, nous définissons la fonction de rappel qui
va être appelée lorsque l’événement Event.COMPLETE sera effectif (lorsque le chargement
des données XML est terminé et constaté).
function onComplete(event:Event):void {
fichierXML = new XML(chargeurDonnees.data);
zoneAffichage.text = fichierXML;
}
Quel rôle joue le contenu de la fonction onComplete ? Vous noterez que la variable que
nous avions déclarée dans la première ligne du script est enfin initialisée, afin que nous
puissions l’utiliser pour lire le contenu du fichier XML. Mais pour cela, nous avons dû
faire appel à la propriété data de la classe URLLoader, ce qui permet d’accéder aux données
chargées.
Maintenant que nous avons tout déclaré et initialisé, nous faisons appel à la méthode load()
de la classe URLLoader() afin que les données contenues dans le fichier franceregions.xml
soient chargées. Nous lançons ensuite l’écouteur de fin de chargement.
chargeurDonnees.load(adresseFichierXML);
chargeurDonnees.addEventListener(Event.COMPLETE, onComplete);
Attention
Contrairement à l’AS1/AS2, l’instance de la classe XML que nous avons déclarée et que nous allons initialiser ne va pas faire appel à la méthode load() qui n’existe plus. La classe XML() n’est plus du tout la
même que celle que nous utilisions en AS1/AS2. Si vous souhaitiez retravailler avec cette dernière, il
faudrait instancier la classe XMLDocument(). Bien sûr, nous vous déconseillons de l’utiliser car elle ne
présente pas les mêmes avantages et facilités d’exploitation d’une arborescence XML que ceux qu’offre la
nouvelle classe de l’AS3.
Le nom de la fonction de rappel
Dans cet exemple, le nom de la fonction est onComplete, mais nous aurions pu en choisir un autre. Vous
devez simplement retenir que le terme ne doit pas contenir de caractères accentués ou spéciaux, ni
d’espace. Il ne doit pas non plus commencer par une majuscule. Si vous préférez choisir un nom français,
c’est donc tout à fait possible, comme : function chargementTermine (event:Event):void
Pour information
Un certain nombre de développeurs prennent et ont pris l’habitude de déclarer les fonctions qui s’exécutent à
la fin d’un chargement de données avant de faire appel à la méthode dédiée (load() dans le cas du XML).
Mais tant que les débits Internet seront plus lents que la vitesse d’exécution d’une ligne d’instruction par
un microprocesseur, cela n’a pas d’importance.
