Charger un document XML en ActionScript 3 (AS3)
Le langage XML permet de structurer et hiérarchiser des données. La syntaxe du langage est proche de l'HTML avec l'énorme avantage de pouvoir créér ses propres nom d'éléments (balises).
Nous allons examiner à travers cet exemple comment il est possible d'utiliser un document au format XML dans Flash avec le langage ActionScript 3.
Le chargement et l'utilisation d'un fichier XML va se dérouler en 3 étapes :
- Chargement du fichier XML
- Récupération du flux XML à la fin du chargement
- Lecture du flux XML
1. Le chargement du fichier XML
Comme pour le chargement de fichiers textes, on utilise la classe URLLoader pour charger notre fichier XML.
La classe URLLoader télécharge des données à partir d’une URL sous forme de texte, de données binaires ou de variables de code URL. Elle est utile pour télécharger des fichiers texte, XML ou d'autres informations destinées à être utilisées dans une application de données dynamique.
On va donc déclarer et instancier un objet de type URLLoader.
-
var chargementXML:URLLoader = new URLLoader();// objet de chargement
Le chargement du fichier XML va être réaliser grâce à la méthode load d'un objet URLLoader. Cette méthode prend un seul paramètre, qui correspond à une instance URLRequest. Une instance URLRequest contient toutes les informations d'une requête HTTP unique, telles que l'URL cible.
On va donc déclarer et instancier un objet de type URLRequest. Il s'agit d'un exemple de carnet d'adresses.
-
var fichier:URLRequest = new URLRequest("carnet.xml");// url du fichier chargé
Les données XML chargées ne sont disponibles à l'utilisation dans Flash que lorsque la totalité du fichier est chargé. Nous allons donc utiliser l'événement COMPLETE pour accèder aux données à la fin du chargement.
Un écouteur d'événement va être ajouté à notre objet URLLoader. L'événement écouté sera l'évenement Event.COMPLETE et la fonction chargementComplet sera appelé dès lors que l'événement aura lieu.
-
chargementXML.addEventListener( Event.COMPLETE, chargementComplet );
Puis on va lancer le chargement du fichier XML avec la méthode load.
-
chargementXML.load( fichier );
2. Récupération du flux XML à la fin du chargement
La fonction chargement s'éxécute lorsque le chargement du fichier XML est terminé. Un objet Event est transmit à la fonction en tant que paramètres lorsque l'événement COMPLETE se produit.
-
// chargement terminé du fichier xml
-
-
function chargementComplet(pEvt:Event):void { }
Le paramètre de type Event contient une propriété target dans laquelle est stocké l'objet associé à l'écouteur d'événements. Dans notre cas, il s'agit de l'objet URLLoader.
Les données reçues, une fois le chargement terminé, sont stockées dans la propriété data de l'objet URLLoader. Ces données étant des données XML, on va pouvoir les stocker dans un objet de type XML.
-
// chargement terminé du fichier xml
-
-
function chargementComplet(pEvt:Event):void
-
-
{
-
-
// on récupère notre xml
-
-
var adresses:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Level.
-
-
}
3. Lecture du flux XML
Le document XML est constitué d'une liste d'éléments (noeuds) XML, en l'occurence ici, une liste de personnes. Cette liste va donc pouvoir être stockée dans un objet de type XMLList. On accèdera à liste des éléments en utilisant la méthode elements de l'objet XML.
-
var personnes:XMLList = adresses.elements(); //le document XML est constitué d'une liste d'éléments XML, en l'occurence ici, une liste de personnes
Pour parcourir toute la liste d'éléments, on utilise une une boucle for each. Chaque element (noeud) contenu dans la liste des éléments, est un objet de type XML.
-
for each(var contact:XML in personnes)//pour chaque noeud enfants dans la liste des personnes { }
On accède aux élements enfants d'un noeud XML en utilisant la syntaxe pointée. Dans notre exemple, on souhaite afficher le nom et le prénom de toutes les personnes de notre carnet d'adresses.
-
for each(var contact:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
-
{
-
-
trace(contact.nom + " " + contact.prenom); //on utilise la syntaxe pointée pour accéder aux noeuds enfants d'un noeud XML
-
-
}
Un noeud XML peut posséder des attributs. On utilise la syntaxe pointée et l'arobase pour accéder aux attributs d'un objet XML
-
<carnet> <personne sexe="M">
-
for each(var noeudContact:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
-
{
-
-
trace(noeudContact.prenom+", de sexe "+noeudContact.@sexe); //on utilise la syntaxe pointée et l'arobase pour accéder aux attributs d'un objet XML
-
-
}
Il est possible de filtrer des éléments dans le document XML. Dans cet exemple, on souhaite afficher le prénom des personnes de sexe féminin.
-
for each(var descendant:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
-
{
-
-
trace(descendant.(@sexe=="F").prenom); //on utilise les parenthèses pour filtrer un élément
-
-
}
Il est aussi possible d'accéder à des noeuds enfants, quelque soit la hiérarchie de noeuds. On utilise la syntaxe nomObjetXML..nomNoeud . C'est le noeud qui renvoyé et non son contenu.
-
trace(adresses..email); //permet de récupérer tous les descendants dont le nom est email
Le script complet
-
var chargementXML:URLLoader = new URLLoader();// objet de chargement
-
var fichier:URLRequest = new URLRequest("carnet.xml");// url du fichier chargé
-
chargementXML.addEventListener( Event.COMPLETE, chargementComplet );
-
chargementXML.load( fichier );
-
// chargement terminé du fichier xml
-
function chargementComplet(pEvt:Event):void { // on récupère notre xml
-
var adresses:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Level.
-
var personnes:XMLList = adresses.elements(); //le document XML est constitué d'une liste d'éléments XML, en l'occurence ici, une liste de personnes
-
for each(var contact:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
{
-
trace(contact.nom + " " + contact.prenom); //on utilise la syntaxe pointée pour accéder aux noeuds enfants d'un noeud XML
-
}
-
for each(var noeudContact:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
{
-
trace(noeudContact.prenom+", de sexe "+noeudContact.@sexe); //on utilise la syntaxe pointée et l'arobase pour accéder aux attributs d'un objet XML
-
}
-
for each(var descendant:XML in personnes)//pour chaque noeud enfants dans la liste des personnes
-
{
-
trace(descendant.(@sexe=="F").prenom); //on utilise les parenthèses pour filtrer un élément
-
}
-
trace(adresses..email); //permet de récupérer tous les descendants dont le nom est email }
Je suis Antony Chauviré, développeur sur la Flash Platform.
Tutorial très bien fait mais je pense qu'il manque le fichier XML pour une bonne compréhension.
Bonjour Fyter,
en effet le lien vers l'exemple en bas de l'article était corrompu, c'est rectifié.
Vous trouverez donc dans le zip, le fichier XML.
;)
25 avril 2008
Text Intro
7 juin 2008
Texte Histo
7 mai 2008
2e Texte Histo
Mettre date ici
Média
Texte source
Texte Lien
Mettre date ici
2e Média
Texte source
Texte Lien
Je veux tout mettre dans un xml comme suit, comment j'irais chercher les d'un premier temps et après les ??
Désolé, le système a filtré les tags!
Salut, je cherchait un tuto de ce genre et je viens de tomber dessus. Super. je vais le tester. Merci
Super. Je viens de tester cet exemple et je ce tuto m'a permi de comprendre comment charger et parser un document XML en AS3. Ensuite je l'ai utilisé pour créer une liste de lecture flash (sur mesure). je le publierai bientôt sur mon blog http://dialloma.blogspot.com et j'expliquerai bien le comment ça marche. Pour l'instant je nettoie le code et je vais le commenter pour les futurs testeurs.
Merci pour tout.
Je galère depuis plus de 5 jour pour une simple lecture de fichier XML.
J'ai télécharger ce tutorial mais hélas ça ne marche pas.
C'est galère tout de même....
Je suis sur Adobe Flash CS3 Professional...
Bonjour,
je cherche a filtrer un XML, en trier par attribue mais ne pas sortir que le resultat des attribue , mais sous forme d'un XML copmlet par ex
je veux filter les femme du XML
cela donnerai :
Rambault
Karine
krambault@design.net
Rapion
Anne
arapion@mediaplus.org
fautil que je recompose en AS3 cette strucutre? ou y'a il un moyen en AS3 E4X ?
grr l'affichage a enlever la structure xml
ce que je veux au final c'est ca un xml
carnet>
personne sexe="F">
nom>Rambault/nom>
prenom>Karine/prenom>
email>krambault@design.net/email>
/personne>
personne sexe="F">
nom>Rapion
prenom>Anne
email>arapion@mediaplus.org/email>
/personne>
/carnet>
Bonjour Yohan
En reprenant l'exemple, tu devrais récupérer les noeuds xml avec :
descendant.(@sexe=="F")
;)
tout ça me donne un peu mal au crane !! :/
je voudrais charger le nom d'un swf contenu dans un XML
pour remplacer big.swf à l'intérieur de cette fonction...
function startcontenuethop2(e:MouseEvent):void {
var conteneur:Loader = new Loader();
var itemurl:URLRequest = new URLRequest("monURL");
conteneur.load(itemurl);
this.addChild(conteneur);
}
oups !
function startcontenuethop2(e:MouseEvent):void {
var conteneur:Loader = new Loader();
var itemurl:URLRequest = new URLRequest("big.swf");
conteneur.load(itemurl);
this.addChild(conteneur);
}
aidez-moi SVP !! :)
Bonjour Dream,
Dans l'exemple donné dans l'article, c'est dans la fonction chargementComplet que l'on traite la structure XML chargée. Il te faut donc dans cette fonction par exemple stocké le nom de ton swf dans une variable et ensuite utiliser cette variable dans ta fonction startcontenuethop2.
Attention à bien déclarer ta variable en dehors de la fonction chargementComplet afin que sa portée ne soit pas locale à la fonction.
;)
Bonjour,
Je suis débutant en flash et je voulais simplement savoir si il y avait moyen de lire un fichier xml dans le main.asc, parce que moi avec ce code ci et même tous les autres que j'ai trouvé, pas moyen :grrr:
En fait j'essaye de faire du live mais avec des vidéos flv, pour le moment ça marche mais faut mettre le nom des flv en dur dans le code, alors je voulais essayer de rendre ça dynamique en lisant un xml côté serveur, c'est peut-être pas la bonne solution ...
Merci de m'aider :)
Merci beaucoup pour cette exemple.
J'ai lu plusieurs tuto sur le sujet aujourd'hui mais seul celui ci m'a permit de comprendre comment lire une donnée précise du XML.
Encore merci
et joyeuses fêtes,
Seb
A l'attention de barilla :
Tu peux lire le XML dans le Main.
Dans l'exemple qui suit, le code va parcourir deux fichiers XML (l'un après l'autre) puis tracer les infos qu'ils contiennent.
Voici le code :
package actionScript
{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.ProgressEvent;
public class Main extends Sprite
{
private var xml_mp3:XML;
private var xml_img:XML;
public var xmlList_mp3:XMLList;
public var xmlList_img:XMLList;
private var chargeur:URLLoader = new URLLoader();
private var adresse_mp3:URLRequest = new URLRequest ("files/xml/mp3.xml");
private var adresse_img:URLRequest = new URLRequest ("files/xml/img.xml");
public function Main():void
{
chargeur.load(adresse_mp3);
chargeur.addEventListener(Event.COMPLETE, finDuChargement_mp3);
chargeur.addEventListener(ProgressEvent.PROGRESS, progressionDuChargement);
}
function progressionDuChargement(evt:ProgressEvent):void
{
trace(evt.bytesLoaded + "/" + evt.bytesTotal);
}
function finDuChargement_mp3(evt:Event):void
{
evt.target.removeEventListener(Event.COMPLETE, finDuChargement_mp3);
xml_mp3 = new XML( evt.target.data );
xmlList_mp3 = xml_mp3.elements();
chargeur.load(adresse_img);
chargeur.addEventListener(Event.COMPLETE, finDuChargement_img);
}
function finDuChargement_img(evt:Event):void
{
evt.target.removeEventListener(Event.COMPLETE, finDuChargement_img);
evt.target.removeEventListener(ProgressEvent.PROGRESS, progressionDuChargement);
xml_img = new XML( evt.target.data );
xmlList_img = xml_img.elements();
affichageDuContenuDesXML();
}
function affichageDuContenuDesXML():void
{
// ici on va récupérer les infos du XML :
// soit en utilisant un boucle comme dans le tuto de cette page
// et on va tracer tous les contenu "titre" de chaque item de ma xmlList_mp3
for each( var mp3:XML in xmlList_mp3 )
{
trace( mp3.@titre );
}
// PROBLEME : Je veux récupérer uniquement
// l'URL que j'ai tapé dans mon XML dans la balise image en position [ 6 ] de
// ma liste ( attention, comme pour les tableaux la première position
//s'appelle [ 0 ] )
// SOLUTION :
trace( xmlList_img[6].@grande );
}
}
}
je t'accorde que je n'ai pas trop commenté le code,
ici il est fonctionnel en l'état et me permet de commencer le développement des outils d'exploitation des données que je vais récuperer dans mes xml.
Bon courage à toi
Seb
Merci pour ce tuto vraiment bien fait pour les debutants comme moi… avec des sources qui fonctionnent… ça fait plaisir !
Tres bon tuto. clair, concis .... Ca fait plaisir
Merci beaucoup
Merci à toi pour tes tutoriels, ils sont vraiment complet et très facile d'accès.
Bonjour à vous,
Merci pour votre tutoriel, mais je n'arrive pas à trouver comment afficher sur la scene les images contenues dans mon fichier XML... Pouvez vous me guider? jJe suis novice et je me me perd...
stop();// import des classes
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.display.Loader; // permet de charger des fichiers : swf, jpg.. et les afficher sur la scene comme 1 movie clip
import flash.display.LoaderInfo
import flash.containers.UILoader;
import flash.net.URLRequest;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.*;
import flash.text.*;
import flash.filters.*;
// DECLARATION DE VARIABLES
var nbPieceOk:Number=0;
//Constantes
var dossierImage:String = 'images/ImagesCarrées/';
//CHARGEMENT FICHIER XML et LECTURE NOEUDS
//chargement donnees du fichier xml
var chargeurDonnees:URLLoader = new URLLoader(); // objet de chargement
chargeurDonnees.dataFormat = URLLoaderDataFormat.TEXT; // type de donnees a charger
var adresseFichierXML:URLRequest = new URLRequest("puzzlelist1.xml"); // url fichier a charger
//chargement du xml
chargeurDonnees.load(adresseFichierXML);
//les donnees ne peuvent être traitees qu'apres chargemnt effectif
chargeurDonnees.addEventListener(Event.COMPLETE,gestionXML); //= ecouteur de fin de chargement
//fonction récupération du flux XML qui s'effectuera à la fin du chargement
function gestionXML(event:Event):void {
// 1 - verifier et intercepter une erreur possible avec la variable fichierXML
try
{
//récupération du fichier XML
var donneesLues:XML= new XML(event.target.data);
donneesLues.ignoreWhitespace = true;
//lecture racine fichier xml
//composant UILoader fournit uniquement un affichage visuel à l'objet Loader.
var containeurImages:UILoader = new UILoader();
containeurImages.load(new URLRequest());
containeurImages.source = donneesLues.puzzle[1];//.elements()
// on positionne l'objet containeurImages sur la scene :
containeurImages.y = 10;
containeurImages.x = 10;
containeurImages.scaleContent = false; //false indique que le contenu chargé est automatiquement ajusté en fonction de sa taille par défaut
/*// déclaration de notre objet Loader
var chargeur:Loader = new Loader();
chargeur.load(new URLRequest("images/ImagesCarrées/Image1/fond1.jpg"));*/
// ! on définit les évenements sur la propriété contentLoaderInfo de l'objet loader ! .
//chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, finDuChargement);
// on affiche l'objet loader sur la scene :
stage.addChild(containeurImages);
// on définit la fonction finDuChargement, executée par l'évenement COMPLETE :
function finDuChargement ( event:Event ) {
trace("Chargement terminé !");
}
}
// 2 - si l'extraction echoue
catch(e:TypeError) {
trace( e.toString() ) ;
trace ("impossible de charger le XML");
trace(e.message);
}
}
//calcul du nb d'elements d'un niveau de hiérarchie
function calculerLongueur(liste:XMLList):uint{
var compteur:uint = 0;
for each (var elt:XML in liste){
compteur++;
}
return compteur;
}
Bonjour naray,
Il faut que tu ajoutes l'objet "chargeur" dans ton objet "conteneurImages".
conteneurImages.addChild(chargeur);;-)
Bonjour,
J'ai un souci. Si dans mon xml je met du html. Quand je fais un :
trace(contact.nom + " " + contact.prenom);
J'ai des retours à la ligne. Or je ne veux pas ces derniers. Comment je fais pour que l'on m'affiche exactement ce que j'ai écris dans mon xml ?
bonsoir
je bien lu votre explications mais j'ai pas trop compris lol
j'ai mon swf principal
var chargeur:Loader = new Loader();
var adresseImage:URLRequest = new URLRequest ("pages/page1.swf");
chargeur.load(adresseImage);
addChild (chargeur);
chargeur.x=90;
chargeur.y=50;
function boutonClique(event:MouseEvent) {
removeChild(chargeur);
var autresAdresses:URLRequest = new URLRequest("pages/" + event.target.name + ".swf");
chargeur.load(autresAdresses);
addChild(chargeur);
}
// liste des boutons
page1.addEventListener(MouseEvent.CLICK, boutonClique);
page2.addEventListener(MouseEvent.CLICK, boutonClique);
page3.addEventListener(MouseEvent.CLICK, boutonClique);
page4.addEventListener(MouseEvent.CLICK, boutonClique);
et un swf externe avec un fichier xml
quel code mettre pour que mon fichier xml soit lu dans le swf principal
je débute et je rame beaucoup
merci à vous :)
Bonjour,
As-tu essayé la propriété ignoreWhitespace de la classe XML ?
;-)
Bonjour minipouce,
Comment est stocké ton xml dans ton swf ?
;-)
Bonjour,
Très bon tuto. Je viens enfin de comprendre XML. J'ai juste un petit soucis lorsqu'il y a duplication d'une balise.
Exemple :
Soit le XML suivant :
Homework
1992
1. Daftendirekt - (2'44)
2. Wdpk 83.7 FM - (0'28)
3. Revolution 909 - (5'26)
4. Da Funk - (5'28)
5. Phoenix - (4'55)
6. Fresh - (4'03)
7. Around the World - (7'07)
8. Rollin' & Scratchin' - (7'26)
9. Teachers - (2'52)
10. High Fidelity - (6'00)
11. Rock'n Roll - (7'32)
12. Oh Yeah - (2'00)
13. Burnin' - (6'53)
14. Indo Silver Club - (4'32)
15. Alive - (5'15)
16. Funk Ad - (0'50)
lorsque je fais
for each(var lire_titres:XML in les_titres) {
trace(lire_titres.titres.titre);
}
Pour récupérer l'ensemble des titres de l'album, j'obtiens ceci :
1. Daftendirekt - (2'44)
2. Wdpk 83.7 FM - (0'28)
3. Revolution 909 - (5'26)
4. Da Funk - (5'28)
5. Phoenix - (4'55)
6. Fresh - (4'03)
7. Around the World - (7'07)
8. Rollin' & Scratchin' - (7'26)
9. Teachers - (2'52)
10. High Fidelity - (6'00)
11. Rock'n Roll - (7'32)
12. Oh Yeah - (2'00)
13. Burnin' - (6'53)
14. Indo Silver Club - (4'32)
15. Alive - (5'15)
16. Funk Ad - (0'50)
A chaque fois il me récupère la balise ouvrante et fermante titre.
Lorsque je ne laisse qu'une seule balise 1. Daftendirekt - (2'44) dans le XML, j'ai bien l'affichage "1. Daftendirekt - (2'44)". Je comprends que la répétition de la balise titre sème le trouble. Comment remédier à cela ?
Merci
Il semblerait qu'il y ait un bug dans l'affichage.. Les balises XML ont disparu et je ne peux corriger mon message
Bonjour,
Très bon tuto. Je viens enfin de comprendre XML. J'ai juste un petit soucis lorsqu'il y a duplication d'une balise.
Exemple :
Soit le XML suivant :
lorsque je fais
for each(var lire_titres:XML in les_titres) {
trace(lire_titres.titres.titre);
}
Pour récupérer l'ensemble des titres de l'album, j'obtiens ceci :
A chaque fois il me récupère la balise ouvrante et fermante titre.
Lorsque je ne laisse qu'une seule balise
dans le XML, j'ai bien l'affichage "1. Daftendirekt - (2'44)". Je comprends que la répétition de la balise titre sème le trouble. Comment remédier à cela ?
Ps: Dommage qu'il manque un pré-visualiser à l'édition.
Merci
Pour afficher du code xml, utilisez la syntaxe crochet ouvrant xml crochet fermant crochet ouvrant slash xml crochet fermant
;-)
très bon tuto ..merci
avec le fichier xml c'aurait été mieux
oups j'avais pas bien lu ...
le fichier xml est dans le ZIP
désolé
Re,
Ne faudrait-il pas mettre la ligne 4 (cf. CS Complet) à l'intérieur de la fonction chargementComplet ?!
Dans le cas présent, la fonction "load" sera t-elle pas appeler APRÈS les traitements ?!
Merci de m'éclaircir les idées...
++
Bonjour Puccino,
La fonction chargementComplet sera appelée lorsque le chargement sera terminé et pas avant. Donc la fonction load va déclencher le chargement et le Flash Player saura ce qu'il doit faire une fois le chargement terminé, c'est à dire appeler la fonction chargementComplet.
;-)
bonjour,
Bien sympa ces petites explications!
Je bloque sur un truc qui est :
"Attention à bien déclarer ta variable en dehors de la fonction chargementComplet afin que sa portée ne soit pas locale à la fonction."
voici mon code :
function chargementComplet(pEvt:Event):void
{
var contenu:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Level.
var textes:XMLList = contenu.elements(); //le document XML est constitué d'une liste d'éléments XML, en l'occurence ici, une liste de textes
for each(var txtRecup:XML in textes)//pour chaque noeud enfants dans la liste des personnes
{
trace(txtRecup.contenu + " / " + txtRecup.ordre); //on utilise la syntaxe pointée pour accéder aux noeuds enfants d'un noeud XML
trace(resultTxt);
}
}
Que dois-je taper et où pour récupérer mes variables ( trace(resultTxt); ) en dehors de la fonction chargementComplet pour qu'elles aient une portée globale?
;-)
Bonjour Flow,
Ce que tu peux faire, c'est stocker les noeuds xml dans un tableau et ensuite, tu peux utiliser le tableau où tu veux.
Tu déclares le tableau avant la fonction chargementComplet puis à chaque passage de la boucle for each, tu ajoutes ta variable dans le tableau.
var tableauTextes:Array = [];function chargementComplet(pEvt:Event):void
{
var contenu:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Level.
var textes:XMLList = contenu.elements(); //le document XML est constitué d'une liste d'éléments XML, en l'occurence ici, une liste de textes
for each(var txtRecup:XML in textes)//pour chaque noeud enfants dans la liste des personnes
{
trace(txtRecup.contenu + " / " + txtRecup.ordre); //on utilise la syntaxe pointée pour accéder aux noeuds enfants d'un noeud XML
trace(resultTxt);
tableauTextes.push(resultTxt);
}
}
;-)
@Tannoy
Merci tout d'abord pour ta rapidité à répondre!!
Je dois passer à côté de quelque chose...Voici mon exemple de test :
Le XML :
1Des solutions innovantes
Quid enim tam absurdum quam delectari multis inanimis rebus, ut honore, ut gloria, ut aedificio, ut vestitu cultuque corporis, animante virtute praedito.
Les dernières technologies
Harum trium sententiarum nulli prorsus assentior. Nec enim illa prima vera est, ut, quem ad modum in se quisque sit, sic in amicum sit animatus.
côté flash :
var chargementXML:URLLoader = new URLLoader();
var fichier:URLRequest = new URLRequest("data.xml");
chargementXML.addEventListener( Event.COMPLETE, chargementComplet );
chargementXML.load( fichier );
var tableauTextes:Array = [];
function chargementComplet(pEvt:Event):void
{
var contenu:XML = new XML( pEvt.target.data );
var textes:XMLList = contenu.elements();
for each(var txtRecup:XML in textes)
{
var resultTxt:String = txtRecup.titre + " --- " + txtRecup.contenu;
//trace(resultTxt);
tableauTextes.push(resultTxt);
}
}
trace(tableauTextes);
Le trace(tableauTextes); ne me sort rien.....
Je suis un peu une buse en AS3.... mais là... ? C'est à n'y rien comprendre (cf. Le grand Détournement)
Salut Flow
Première étape, vérifier si ton tableau est rempli. Pour cela, tu peux faire:
trace(tableauTextes.length);;-)
coucou, merci pour ce très bon exemple avec des explications détaillées , alors moi ce qui me tracasse c'est que je vx afficher le contenu de mon xml sur la scéne de mon flash,merci de m'aider svp
Merci c tout ce que j'ai a dire sur ce travail magnifique