begin process at 2008 07 21 00:24:39
1 213 530 membres
431 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INTRODUCTION AU XML (MX 6 ET ULTERIEURS)


Information sur le tutorial

Catégorie :ActionScripts Date de création : 25/08/2005 21:50:17 Vu : 15 346 fois

Note :
9,79 / 10 - par 19 personnes
9,79 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (49)
Ajouter un commentaire et/ou une note


Description

Ce cours vous donnera les bases de l'exploitation du XML dans flash, ainsi que les bases du XML lui meme.
Cours, precis, concis, adapté aux debutants.

Tutorial

Introduction au XML

 

Pour expliquer comment utiliser le xml dans flash, je vaisprendre un exemple concret.

Nous apprendre à exploiter un fichier xml en prenant commeexemple un système de news fictif.

Nous ne réaliserons que l'exploitation des donnée, pas lesystème lui même.

L'affichage se fera via la fonction trace().

 

Je part sur le principe que vous connaissez les fonctions debase du langage, en particulier les boucles et les bases de la POO.

 

Voici donc le fichier sur lequel nous allons travailler;

<?xml version='1.0' encoding='UTF-8' ?>

<main>

 

  <news>

    <title value="titre de la news" />

    <texte>

      <![CDATA[ blablabla ]]>

    </texte>

    <links>

      <link url="http://www.allboard.net" text="Allboard Network" />

      <link url="http://www.blackwizzard.com" text="BlackWizzard NetWork" />

      <link url="http://www.underground-fr.com" text="Underground-fr" />

    </links>

  </news>

 

  <news>

    <title value="une 2eme news" />

    <texte>

      <![CDATA[ texte de la 2eme news ]]>

    </texte>

    <links>

      <link url="http://www.v-network.info" text="Allboard Network" />

    </links>

  </news>

 

</main>

 

Comme vous pouvez le voir, nous devons spécifier un header.si il n'y en a pas, flash va quand même le charger, mais ce header permet depréciser l'encodage.

<?xml version='1.0' encoding='UTF-8' ?>

 

 

Les info sont entre <?xml et ?>

version='1.0' ne changera pas puisque seul la version 1.0existe pour l'instant ;)

 

encoding='UTF-8' détermine l'encodage du fichier.

UTF-8 est le plus utilisé, mais il existe une multituded'encodages possibles.

UTF-8 est le codage 'européen'. Il est celui utilisé dansles pays utilisant notre alphabet.

Il existe d’autres encodages tels que windows-1252,ISO-8859-1, UTF-16 ...

 

Apres le header, nous voyons que les Balises sont mis entreune paire de balise <main></main> que l'on appelle balises"root".

Quelque soit le document xml, Tout le document doit êtreencadré ce cette pair de balise.

Le nom de cette paire balise n’a pas d'importance.

 

Il y a 2 types de balises;

Celles, comme en HTML qui se composent en paire<nom></nom> et celles uniques, qui sont de type <nom />

Chaque type de balise ouvrante peut accueillir desparamètres, exemple, <nom paramètre="valeur"></nom> ou<nom paramètre="valeur" />.

Les balises uniques ne servent uniquement a accueillir desparamètres.

Pour fournir un texte complet, mettez le entre une paire debalises, mais attention! si votre texte se compose de code html, les baliseshtml seront considérés comme des balises xml, ce qui entraînera souvent uneerreur.

Pour éviter cela, Vous pouvez placer votre texte entre lespseudo balises <!CDATA![ et ]]>.

Exemple:

  <nom>

    Voici un texte en gars: <br>

    <b>blablabla</b>

  </nom>

Si vous faittes comme cela, les balises html vont etre considérées comme du xml, et la syntaxe n'etant pas correct, en particulier pour le <br>, le fichier va retourner une erreur. C'est alors qu'intervient le CDATA:

  <nom>

    <![CDATA[

      Voici un texte en gars: <br>

      <b>blablabla</b>

    ]]>

  </nom>

 

Tout ce qui se trouve dans la balise CDATA ne sera pas interprété.

 

Maintenant que vous possédez les bases syntaxiques du XML,nous allons commencer le code action script.

 

Pour exploiter du xml, nous devons déclarer un nouvel objetXML:

        myXML = new XML();

 

Nous voulons que les espaces et sauts de lignes ne soientpas interprétés (ce qui est préférable, sinon ça fout le bordel), pour cela,nous disposons de la propriété ignoreWhite:

                myXML.ignoreWhite = true;

 

Nous allons maintenant charger le fichier:

        myXML.load("fichier.xml");

 

Le fichier pouvant mettre plusieurs secondes a se charger enfonction de sa taille et de la vitesse de connexion, nous allons faireintervenir la fonction onLoad() qui exécutera son code des que le xml estchargé. Cette fonction reçoit un argument de type booléen (1 ou 0; true oufalse) qui correspond a l'état de chargement; true(1) = le document est chargé,false(0) = le document n'est pas chargé, probablement indisponible ou enerreur:

myXML.onLoad = function(flag) {
        if (flag) { // si flag = true
                // reste du code.
        }
}

 


 

Maintenant que nous savons composer et charger un documentXML, il faut l'analyser.

Pour cela, Nous allons parcourir les "branches" dufichier, qui comme tt le monde a du le remarquer se compose comme unearborescence.

Pour cela, nous allons utiliser une boucle while(), bienqu'il soit aussi possible de passer par un for().

Voici l'arborescence sommaire du fichier :

 

+main

-+news

----title (value)

----texte [cdata]

---+links

------link 1 (url, text)

------link 2 (url, text)

------link 3 (url, text)

-+news

----title (value)

----texte [cdata]

---+links

------link 1 (url, text)

 

 

J’espère qu'il est assez clair pour tt le monde.

 

Afin de parcourir le fichier, nous disposons de 2 fonctionsprincipales:

xml.firstChildet xml.childNodes[x]

xml.firstChild retourne la première "branche" dunoeud "xml".

xml.childNodes[x] retourne le noeud "x" du noeud"xml", sinon il retourne "undefined" si la valeur du noeud"x" n'est pas trouvée.

xml.firstChildet xml.childNodes[0] sont donc similaires

 

Quand le fichier xml est chargé, notre objet XML"myXML" prend comme valeur le contenu du fichier xml.

Vous pouvez vous en rendre compte en effectuant untrace(myXML);

Donc, afin d'isoler les sections de news, nous pouvons fairetrace(myXML.firstChild); qui va nous retourner uniquement les zones de news.

 

Etant donnée que le nombre de news est dynamique, nousallons les afficher une par une, sans savoir a l'avance combien il y en a.

Pour cela, nous allons utiliser notre boucle while,xml.childNodes[x] et xml.firstChild.

(tout le code qui suis devra se placer a la place de"// reste du code.", dans la fonction onLoad()).

 

//initialisation
i=0; // on initialise le compteur.
x = myXML.firstChild; // on se place sur le noeud des news.
while (x.childNodes[i] != undefined) { // tant qu'il y a des news...
        trace(x.childNodes[i]); // on affiche le noeud de news trouvé.
        i++; // on incrémente le compteur.
}
trace(i+" news trouvées");      // on affiche le nombre de news trouvé, c'est pas utile
// pour ce tutorial, mais c'est un plus ;)

 

Voila!

Nous avons commencé à parcourir le fichier!

Si vous avez compris le bout de code ci-dessus, vous aveztout compris du xml, ou presque.

 

Mais afin de faire un tutorial complet, je vais allerjusqu'au bout de cette exploration du fichier.

Nous avons donc su afficher chaque noeud de news.

Nous allons donc explorer chaque news!

Pour cela, nous devons nous servir d'une nouvelle fonction:xml.attributes

Pour comprendre l'utilité de cette fonction, il faut voirles spécificités du xml; En effet, nous avons 2 façons pour stocker du texte:

- entre une paire de balise: <nom>texte</nom>

- dans une balise: <nom attr="texte" />

Pour accéder au premier type (la paire de balise), un simplefirstChild suffit.

Par contre, pour accéder a la balise elle même, nous devonsutiliser noeud_xml.attributes.nom_attribut

Exemple:

Pour<link url="http://www.allboard.net" text="AllboardNetwork" />

Pour accéder a la valeur de "url", nous allonsfaire noeud_xml.attributes.url

Et pour accéder a la valeur de "texte"noeud_xml.attributes.text

 

Voici donc le code complet qui permet d'explorer le fichierxml.

Vous disposez maintenant de toutes les notions nécessairespour comprendre ce code.

 

i = 0;
x = myXML.firstChild;
while (x.childNodes[i] != undefined) {
        trace(""); // ligne vide
        trace("--- NEWS "+(i+1)+" ---"); // le (i+1) permet d'afficher "NEWS 1" et non pas "NEWS 0",
        // mais c'est juste une question esthetique.
        trace("titre:\t"+x.childNodes[i].childNodes[0].attributes.value); // le titre, avec le fameux "attributes"!
        trace("texte:\t"+x.childNodes[i].childNodes[1].firstChild); // le texte, via un simple firstChild.
        trace("liens:"); // ha! là on ne sais pas combien il y a de liens par news! ça devient interessant!
        j = 0; // on initialise j.
        while (x.childNodes[i].childNodes[2].childNodes[j] != undefined) { // tant qu'il y a des liens...
                trace("\t --- LIEN "+(j+1)+" ---"); // on affiche le numero de lien...
                trace("\t lien:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.url); // ...son url,
                trace("\t texte:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.text); // son texte...
                j++; // on incremente le compteur j.
        }
        i++;
}
trace(""); // ligne vide, purement esthetique.
trace(i+" news trouvées");      

 

Et voila!

Vous pouvez désormais vous servir du xml, qui est sipratique avec flash!

Un conseil, avant de coder, regardez bien la structure duxml, si elle est complexe, faites le shema simplifié comme on a fait, etdistinguez bien les éléments statiques (titre, texte toujours au même nombre età la même place) des éléments dynamiques (souvent a la même place, maisrarement au même nombre).

 

Amusez vous bien!


Le code final

 

myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("file.xml");
myXML.onLoad = function(flag) {
        if (flag) {
                i = 0;
                x = myXML.firstChild;
                while (x.childNodes[i] != undefined) {
                        trace("");
                        trace("--- NEWS "+(i+1)+" ---");
                        trace("titre:\t"+x.childNodes[i].childNodes[0].attributes.value);
                        trace("texte:\t"+x.childNodes[i].childNodes[1].firstChild);
                        trace("liens:");
                        j = 0;
                        while (x.childNodes[i].childNodes[2].childNodes[j] != undefined) {
                                trace("\t --- LIEN "+(j+1)+" ---");
                                trace("\t lien:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.url);
                                trace("\t texte:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.text);
                                j++;
                        }
                        i++;
                }
                trace("");
                trace(i+" news trouvées");
        }
};

 


Tutorial écrit par Julien Loutre, alias BlackWizzard.

 

Diffusion électronique autorisée en  l’état.

Toute modification doit faire l’objet d’un accord écrit del’auteur.

L’impression ou la diffusion dans un but lucratif eststrictement interdite sans autorisation préalable.

 

Contact :

Tel          (+33)0615576747

Email      blackwizzard@gmail.com

 [collé depuis word]

  • signaler à un administrateur
    Commentaire de esco le 27/10/2005 01:35:41

    Que dire...excellent !
    Ce tuto est très clair, mon flash marche parfaitement, que demander de plus ?

    - Mon seul soucis, c'est que les 'é','è','à','ç' s'affichent bizarrement (jpense que cela doit venir du encoding='UTF-8')
    - Autre petit problème, <![CDATA[ Voici un texte en gars: <br><b>blablabla</b> ]]> ne marche pas chez moi.

    Mais bon, c'est du détail, et on peut faire sans.
    Grand merci à toi BlackWizzard. J'te mets un 10/10 ;)

  • signaler à un administrateur
    Commentaire de moonj le 23/11/2005 11:22:41

    Parfait Merci tres bien expliqué

  • signaler à un administrateur
    Commentaire de moonj le 23/11/2005 14:39:43

    BIG dsl pas fe gaffe g clic sur une etoile ss faire expres et g mis 5 :( c 10  qu il fo!

  • signaler à un administrateur
    Commentaire de BlackWizzard le 23/11/2005 21:03:54 administrateur CS

    pas de prob, je supprime ta notation.

  • signaler à un administrateur
    Commentaire de doudou3158 le 26/11/2005 00:29:42

    waou il a l'air d'etre bien mais bon le mettre en catégorie 1 qui je considere et pour les debutants moyen moyen car frenchemnt j'ai essyé mais les 3/4 des fonction je ne sais pas ce quel veule dire c'est peut etre ou je ne sais pas enfin 'ets surment moi comme je comprend jammais rien...enfin bref je te met 10 pck le peut que j'ai compris c'était trés claire

  • signaler à un administrateur
    Commentaire de kaderfree le 17/12/2005 11:47:35

    cool ce tuto
    thanks friends

  • signaler à un administrateur
    Commentaire de enigmatiqk le 20/12/2005 10:57:20

    il est super bien fait ce tutorial !!, seule chose manquante, l'utilisation d'une function récurente (dans le cas d'un xml bien grand :p), j'ai essayé de le faire mais sans succès, si quelqu'un pouvais y mettre le code afin de completer son tutorial, pour le bien de tous (et du mien :p), merci :)

  • signaler à un administrateur
    Commentaire de Slyvaan le 21/02/2006 12:36:31

    Ce code marche super, merci pour cette information, ca va grandement m'aider.

    Par contre j'ai un petit probleme que je ne comprends pas (debutant flash ; ; )...
    Le texte s'affiche dans une fenetre "Sortie" kan je fais le test de mon anim flash, tout est affiché correctement comme je le désirait...
    Par contre je n'arrive pas a trouver comment faire pour afficher ca directement sur mon animation flash dans un bloc de texte (dynamique ou statique), quand je fais un F12 je ne vois rien affiché non plus. J'ai peut etre manqué une partie du tuto ou pas compri je ne sais pas :)

    si quelqu'un pouvait m'eclairer ca serait super :D

    Merci beaucoup :)

  • signaler à un administrateur
    Commentaire de BlackWizzard le 21/02/2006 18:40:18 administrateur CS

    Le resultat sort en mode debug, en gros, la commande trace() permet de faire une sortie uniquement dans l'IDE flash, pas dans le player.
    Essai plutot nom_du_textfield.text = "valeur"; pour le faire sortir dans une zone de texte.

  • signaler à un administrateur
    Commentaire de pegase31 le 22/02/2006 07:16:43

    ah, ben franchement un grand merci à toi .. je viens de me lancer dans le test d'un XMLsocket et j'y connaissait rien en XML ... maintenant c'est plus le cas et tout ça en quelques heures !

    Peg'

  • signaler à un administrateur
    Commentaire de Slyvaan le 23/02/2006 11:02:02

    merci beaucoup, ca marche, j'ai reussi a avoir ce que je voulais :)

  • signaler à un administrateur
    Commentaire de cortoh le 27/02/2006 18:46:12

    petite question du soir: flash peut il generer un fichier XML sans avoir recours a un autre langage, PHP ou ASP?

  • signaler à un administrateur
    Commentaire de BlackWizzard le 01/03/2006 16:51:33 administrateur CS

    Il peut generer, mais pas l'exporter.
    Flash n'as pas les acces pour ecrire un fichier sans passer par d'autres langages.

  • signaler à un administrateur
    Commentaire de cortoh le 01/03/2006 17:23:13

    mouais, il me semblait bien aussi... c'est ballot... merci, en tout cas.

  • signaler à un administrateur
    Commentaire de mctyler le 02/03/2006 00:42:05

    Super le tuto.
    Je suis débutant en flash et je voudrais savoir comment insérer plusieurs ligne dans un champs texte dymamique?
    J'ai bien compris ce qu'a dit "BlackWizzard" mais moi j'obtient que le dernier résultat et je voudrais avoie la totalité du résultat.

    Merci à ceux qui peuvent m'aider.

    rank

  • signaler à un administrateur
    Commentaire de cortoh le 02/03/2006 01:28:21

    mmm, meme hors ligne? je veux dire, ecrire sur le disque hors ligne?

  • signaler à un administrateur
    Commentaire de BlackWizzard le 03/03/2006 08:37:59 administrateur CS

    Click sur ton textField, et va voir les propriété. passe le en multiligne.

  • signaler à un administrateur
    Commentaire de Dav57 le 20/04/2006 20:11:41

    Super tuto, ça fonctionne, mais ensuite ? comment fait-on pour afficher le contenu de ce fichier xml dans l'animation. Je n'obtiens qu'un fichier de sortie :)

  • signaler à un administrateur
    Commentaire de lisambert le 01/05/2006 06:06:33

    Super ce tutorial.

    Juste une petite remarque sur un point oublié : les caractères accentués...
    Si vous souhaitez passer des caractères accentués de xml à Flash (par exemple, vous avez la phrase "évènement à Paris" dans vos données xml à faire afficher dans une zone de texte dynamique de Flash), il y a souvent problème de compatibilité de codage des caractères.

    En effet, depuis 2004, Flash MX utilise le codage "unicode", qui sera de plus en plus utilisé à l'avenir.

    Pour lire sans problème vos données, il faut bien mettre en entête <?xml version='1.0' encoding='UTF-8' ?> dans votre fichier xml, mais il faut surtout enregistrer votre fichier xml contenant des caractères accentués au format "unicode".
    Ceci se fait simplement avec le bloc-note de Win XP : "enregistrer sous...", mettez le nom de fichier, puis sélectionnez "unicode" pour le codage.

    Avec cette méthode, pas besoin de remplacer les lettres avec accent par leur code, on peut simplement les écrire en clair : "é", "à", "ï".

    En espérant que cette précision servira, cordialement.
    Loïc.

  • signaler à un administrateur
    Commentaire de BlackWizzard le 01/05/2006 12:44:32 administrateur CS

    On peut egalement utiliser l'instruction
    System.useCodePage = true;

  • signaler à un administrateur
    Commentaire de aureliendeharbe le 18/06/2006 22:06:41

    Super tuto très clair et très pratique, merci beaucoup !

  • signaler à un administrateur
    Commentaire de q1proust77 le 26/06/2006 19:19:12

    RIen a dire : super code

  • signaler à un administrateur
    Commentaire de Hash2o le 03/10/2006 17:48:31

    Pas mal l'explication mais pour les gens qui n'ont jamais touché a l'XML (comme moi) c'est pas évident du tout surtout pour faire appel a l'XML avece flash :)

  • signaler à un administrateur
    Commentaire de buzhug35 le 08/10/2006 13:17:15

    Bonjour,
    Mon problème étéit de faire apparaître les caractères accentués. J'ai enregistré mon fichier xml en UTF-8 (préférences dans Subethaedit) et ai retesté … pas d'amélioration. j'ai rajouté la "balise" CDATA, pas d'amélioration : j'ai toujours un grand trou à la place du è.
    Pour info, mon "tout petit" fichier HTML :

    <?xml version="1.0" encoding="UTF-8" ?>

        <textes>
            <enonce> <![CDATA[Complète toutes les cases.  ]]></enonce>
            <bonnereponse> Super ! </bonnereponse>
            <mauvaisereponse> Tu te trompes, recommence. </mauvaisereponse>
        </textes>

    Remarque : auparavant, j'avais essayé sous la forme

    <textes>
        <texte nom="enonce" aecrire="Complète toutes les cases." />
        <texte nom="bonnereponse" aecrire="Super ! " />
        <texte nom="mauvaisereponse" aecrire="Tu te trompes, recommence. " />
    </textes>

    Mais le grand trou existait déjà … si quelqu'un peut m'aider d'avance merci (je travaille sous Mac, avec Flash 8 et mon objectif est d'extérioriser en xml les textes et commentaires afin de produire des pages bilingues … et j'ai absolument besoin des caractères accentués !).
    Cordialement

  • signaler à un administrateur
    Commentaire de BlackWizzard le 08/10/2006 19:40:34 administrateur CS

    Dans ton code:
    System.UseCodePage = true;

    ça devrais resoudre le probleme.

  • signaler à un administrateur
    Commentaire de ghaiti le 31/10/2006 22:09:47

    merccccccccccccccccccccccci

  • signaler à un administrateur
    Commentaire de Al3XxX le 02/11/2006 13:22:56

    J'suis dsl de te deranger BlackWizzard mais... nom_du_textfield.text = "valeur"; j'comprend pas cette ligne... :$

    sinon tres bon tuto Merci j'comprend le xml mnt :)

  • signaler à un administrateur
    Commentaire de BlackWizzard le 02/11/2006 16:14:55 administrateur CS

    Sur la scene, tu crée un textfield (champ de texte) dynamique (important, un statique ne fonctionnera pas), que tu nomme par exemple "montextfield".

    Tu renomeras donc la ligne
    nom_du_textfield.text = "valeur";
    en
    montextfield.text = "valeur";

  • signaler à un administrateur
    Commentaire de BlackWizzard le 02/11/2006 16:18:15 administrateur CS

    exemple:
    (je n'ai pas testé, mais ça devrais fonctionner)



    myXML = new XML();

    myXML.ignoreWhite = true;

    myXML.load("file.xml");

    myXML.onLoad = function(flag) {

            if (flag) {

                    i = 0;

                    x = myXML.firstChild;

                    while (x.childNodes[i] != undefined) {


                            montextfield.text = "--- NEWS "+(i+1)+" --- \n";

                            montextfield.text = "titre:\t"+x.childNodes[i].childNodes[0].attributes.value+"\n";

                            montextfield.text = "texte:\t"+x.childNodes[i].childNodes[1].firstChild+"\n";

                            montextfield.text = "liens: \n";

                            j = 0;

                            while (x.childNodes[i].childNodes[2].childNodes[j] != undefined) {

                                    montextfield.text = "\t --- LIEN "+(j+1)+" --- \n";

                                    montextfield.text = "\t lien:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.url+"\n";

                                    montextfield.text = "\t texte:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.text+"\n";

                                    j++;

                            }

                            i++;

                    }

                    

                    montextfield.text = i+" news trouvées";

            }

    };

  • signaler à un administrateur
    Commentaire de hbakha2000 le 04/11/2006 12:11:29

    merci beaucoup, ca marche.

    mai j'ai un probleme je utilise mon flash dans une page PHP
    ou le fichie XML change.

    la 1ere fois le flash  me donne un bonne resultat
    mais apret que le fichies XML change il me donne le resultat de la 1ere fois
    il rest avec les même resulat de la 1ere l'ensment de l'instruction Load()  

  • signaler à un administrateur
    Commentaire de BlackWizzard le 04/11/2006 14:05:42 administrateur CS

    dans ce cas, force le reload.
    myXML.load("file.php?"+Math.random());

  • signaler à un administrateur
    Commentaire de hbakha2000 le 04/11/2006 14:36:05

    elle n'a pas marchie

  • signaler à un administrateur
    Commentaire de hbakha2000 le 07/11/2006 10:31:16

    mon probleme resolu il faut ajout un script pour faire refresh de la page

  • signaler à un administrateur
    Commentaire de kel solaar le 14/11/2006 18:37:33

    excellent tutorial. Je comprenais pas grand chose à XML, maintenant, j'arrive à l'utiliser! merci bien :)

  • signaler à un administrateur
    Commentaire de BlackWizzard le 15/11/2006 00:54:16 administrateur CS

    J'ai eu le meme probleme au debut, impossible de comprendre comment ça fonctionnait, ça me semblait tellement complexe.
    C'est pour ça que des que j'ai eu compris, j'ai ecrit un cours pour eviter ce genre de problemes aux autres developpeurs ;)

  • signaler à un administrateur
    Commentaire de Al3XxX le 22/11/2006 17:19:43

    Merci beaucoup BlackWizzard, ca marche :D

  • signaler à un administrateur
    Commentaire de fredos06 le 08/01/2007 18:45:32

    vraiment cool ce tuto,
    par contre je voudrait savoir comment faire pour choisir le texte à afficher selon une zone défini
    .
    J'ai essayé avec montextfield.text = "texte:\t"+x.childNodes[i].childNodes[1].firstChild+"\n";
    mais ça marche pas
    d'ailleur il met automatiquement le 2eme noeud.
    Si quelqu'un sais.
    Merci bcp

  • signaler à un administrateur
    Commentaire de Aloades le 27/01/2007 12:24:52

    Coucou!
    Vraiment bien ton tuto BlackWi'! Merci du temps que tu as passé pour des gens comme moi... novices en la matière!

    J'aurai juste deux questions:
    - J'aimerai savoir comme ça marche pour les polices d'écriture... ça se gère côté xml? Ou bien on peut dégérer cela côté Flash?
    - Dans ton tuto, tu nous expliques comment soutirer des infos d'un fichier xml pour les mettre dans un fichier Flash, certes... mais l'inverse est-il aussi simple? J'aimerai en effet créer une sorte de "forum" sur Flash, et donc écrire un texte sur un interface Flash, le stocker dans un xml, puis pouvoir relire ces textes xml, dans une page Flash...
    A moins que cela soit peut être un brin idiot?

    Merci d'avance de m'éclairer...
    Cordialement,
    Aloades

  • signaler à un administrateur
    Commentaire de BlackWizzard le 27/01/2007 15:26:17 administrateur CS

    je comprend pas ta premiere question.
    Pour la deuxieme, flash s'execute coté utilisateur, donc n'a pas acces à l'ecriture coté server. Tu doit donc passer par un script coté server qui ecrira le fichier (ou mieux, utilisera une base de donnée)
    En general, flash appel un script qui ecrit dans une base de donnée pour sauvegarder les messages, et fait appel a un autre script qui lit la base de donnée et retourne un fichier xml lu par flash.

    Il y a des exemples sur ce site, mais c'est d'un niveau assez elevé, surtout au niveau de la conception (sans parler de la programmation)

  • signaler à un administrateur
    Commentaire de Ang3lo le 04/04/2007 14:28:43

    Dans Flash 8 c'est
    System.useCodepage = true; et non
    System.UseCodePage = true;

    ;)

  • signaler à un administrateur
    Commentaire de dalton05 le 08/04/2007 09:57:59

    Ben moi je n'y arrive pas ; je suis p-e débile :s ... pourtant, je n'ai fait que du copier-coller :s j'ai repris le code posté qui se trouve dans le commentaire "BlackWizzard le 02/11/2006 16:18:15 " ici plus haut et également un copier-coller du xml de départ. résultat :

    http://www.gaetan.eu/xmlessai.swf
    http://www.gaetan.eu/file.xml
    http://www.gaetan.eu/xmlessai.fla

    (j'avais aussi mis une scrollbar avant ^^ mais on peut de tte façon constaté qu'il n'y a rien d'autres... vu qu'on peut 'scroller' avec la souris)

  • signaler à un administrateur
    Commentaire de dalton05 le 08/04/2007 09:59:15

    constater* autre* (fatigué :s)

  • signaler à un administrateur
    Commentaire de BlackWizzard le 08/04/2007 22:23:06 administrateur CS

    en effet... il manque le signe + devant chaque signe =

    exemple:
    montextfield.text = "--- NEWS "+(i+1)+" --- \n";
    deviens
    montextfield.text += "--- NEWS "+(i+1)+" --- \n";

    sinon, ça n'ajoute pas au textfield, mais efface et re-ecrit par dessus...
    j'avais precisé "(je n'ai pas testé, mais ça devrais fonctionner)" ;)

  • signaler à un administrateur
    Commentaire de ploufplouf1 le 17/05/2007 02:03:36

    Bonjour, bien le tuto sur l'XML mais j'ai intégré une playlist XML dans un lecteur MP3, tout fonctionne très bien, sauf quanf je fais appel à ce lecteur dans mon main=, là le lecteur me permet de choisir les noms de mes pistes (1er attribut) mais ne lance pas la lecture car ne prend pas l'attribut 2 en considération apparemment et revien sur mon message par defaut "sélectionner un morceau" (pour voir mon site : http://stecolson.ifrance.com/). Si vous trouvez une solution ce serait sympa car je cherche mais ne trouve pas.

  • signaler à un administrateur
    Commentaire de BlackWizzard le 17/05/2007 16:12:21 administrateur CS

    sans extrait de code, personne ne t'aidera...

  • signaler à un administrateur
    Commentaire de mtb54 le 28/06/2007 10:26:35

    bonjour, j ai un petit probleme avec ce tuto tip top . je veux afficher la liste des news . g nommé un textearea sur la scene mais je n ai que le premier champs qui s affiche "news 1" et voici mon code. Comment faut il faire pour avoir tout le contenu du fichier xml qui s affiche ? merci

    System.useCodepage = true;
    myXML = new XML();

    myXML.ignoreWhite = true;

    myXML.load("fichier.xml");

    myXML.onLoad = function(flag) {

            if (flag) {

                    i = 0;

                    x = myXML.firstChild;

                    while (x.childNodes[i] != undefined) {


                            montextfield.text += "--- NEWS "+(i+1)+" --- \n";

                            montextfield.text += "titre:\t"+x.childNodes[i].childNodes[0].attributes.value+"\n";

                            montextfield.text += "texte:\t"+x.childNodes[i].childNodes[1].firstChild+"\n";

                            montextfield.text += "liens: \n";

                            j = 0;

                            while (x.childNodes[i].childNodes[2].childNodes[j] != undefined) {

                                    montextfield.text += "\t --- LIEN "+(j+1)+" --- \n";

                                    montextfield.text += "\t lien:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.url+"\n";

                                    montextfield.text += "\t texte:\t"+x.childNodes[i].childNodes[2].childNodes[j].attributes.text+"\n";

                                    j++;

                            }

                            i++;

                    }

                    

                    montextfield.text += i+" news trouvées";

            }

    };

  • signaler à un administrateur
    Commentaire de rapor le 27/01/2008 09:41:33

    bonjour,
    j'ai lu et tester sauf que cela ne fonctionne pas chez moi, ma question: j'ai créer un menu dans un clip et des liens dans ce menu qui doivent faire appel au xml, chaque lien fait appel a un fichier xml, dois-je créer 1 image clé pour chaque bouton(avec lien xml) ou 1 image clé suffit pour y mettre tous les boutons ???
    voikla le code que j'ai mis pour chaques boutons:
    on (release) {
    XMLmenu = new XML();
    XMLmenu.ignoreWhite = true;
    XMLmenu.load("playlistrapfr.xml");
    }

  • signaler à un administrateur
    Commentaire de h1fra le 30/01/2008 15:07:53

    y a un truc que je saisi pas , pourquoi ne pas avoir continué le tuto jusqu'à l'affichage des news, parce qu'avec ça les débutants en xml (comme moi) sont bien avancés.

    Perso, j'arrive pas à afficher rien pourtant c'est pas faute d'essayer.

  • signaler à un administrateur
    Commentaire de omartssri le 10/07/2008 14:15:32

    waw super c bien expliquer merci bcp je vais l'essayer !!

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS