IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

XML Erreur incompréhensible..


Sujet :

Flash

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut XML Erreur incompréhensible..
    Bonjour,

    Amis développeur je suis au bord du gouffre..!

    Voilà, cette nuit je me suis dit : "allez je m'y met vraiment au Xml!"
    Et toute cette nuit, je me suis arracher les cheveux sur : (ne rigoler pas svp )
    La créations et l'exploitation d'un fichier xml de BASE..

    Voici les codes :

    _____________
    Mon fichier XML


    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <menu>

    <rubrique titre="Vidéo 1" numero="01" />

    </menu>


    _____________

    Rien de bien sorcier je vous l'accorde..
    _____________
    Mon Code AS


    monXml = new XML ();
    monXml.ignoreWhite = true;
    monXml.load ("menu.xml");
    monXml.firstChild.childNodes.length;

    trace (monXml.firstChild.childNodes[0].attributes.titre);

    monXml.onLoad = function (success:Boolean)
    {
    if (!success)
    {
    trace ("Erreur de chargement");

    }
    else
    {
    trace ("menu.xml Chargé avec succès");
    }
    };

    _____________

    La vous me direz, mais quel est ton problème?!

    Justement il ne devrais y en avoir aucun, tout me semble bien conforme..
    Mon teste AS me dit bien que mon Xml est Chargé
    Pourtant lors d'une action trace() je souhaite tout simplement
    vérifier que j'arrive à bien récupérer la valeur de mon attribut "titre", et c'est bien là tout mon problème !
    En exportant, mon panneaux de sortie me dit que ce cette valeur est "undefined"

    Sauriez vous me dire pourquoi??

    J'ai tout essayer! Tout! j'ennumrerai pas toute mes démarches pour y remédier, je pense avoir assez raconté ma vie pour si peu

    Je compte sur vous amis développeur.

    Thanks.

  2. #2
    Membre actif Avatar de Ikonic
    Inscrit en
    Février 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 197
    Points : 202
    Points
    202
    Par défaut
    salut,

    c'est normal puisque ton trace est déclaré en dehors ta fonction de charment du fichier xml...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    monXml = new XML ();
    monXml.ignoreWhite = true;
     
    monXml.onLoad = function (success:Boolean) {
      if (!success) { trace ("Erreur de chargement"); }
      else { 
      trace ("menu.xml Chargé avec succès");
      trace (monXml.firstChild.childNodes[0].attributes.titre);
      }
    };
     
    monXml.load ("menu.xml");
    piksite.com
    Pour vos photos, images, .... » Carousel.us

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut


    C'est certainement anodin pour toi, mais pour mois c'est un grand pas! lol
    Tu me rends là un bien grand service tu sais?!

    J'abuserais presque en te posant une petite questions toujours en raport avec mon xml.

    Mon but est de récupérer la valeur de mes attributs dans des TextField occurrencé sur ma scène.
    Est-ce possible? Comment faire?

    J'ai plusieurs champs de textes sur ma scène avec comme variables

    monTexte1.. monTexte2...

    Ce que j'essaye de faire avec l'aide que tu ma apporté c'est d'ajouter
    ces lignes après

    [..]
    monXml.load("menu.xml")
    monTexte1 = monXml.firstChild.childNodes[0].attributes.titre
    monTexte2 = monXml.firstChild.childNodes[1].attributes.titre

    [..]

    Et bien évidement cela de marche pas
    Bien sur le jour où j'ai 1000 champs ça serait assez laborieux à construire de cette manière..même si cela fonctionnais.
    Je me pencherais alors sur des boucles tels que for() mais je t'avoue que je n'y comprends rien, niveau boucles, je fais encore partie de la if() if() if()...team. Si tu vois ce que je veux dire..

    Peut être faut-il crée mes champs de textes entièrement en code pour leurs appliquer les valeurs de mes attributs?

    Merci encore de ta réponse je peux enfin aller me coucher

  4. #4
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    la solution a ton problème doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monTexte1.text = monXml.firstChild.childNodes[0].attributes.titre
    Comme tu l'as justement dis, lorsque tu auras 1000 lignes dans ton fichier XML, tu devras obligatoirement utiliser une boucle (for, while...) et surtout créer tes textfield dynamiquement.
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  5. #5
    Membre actif Avatar de Ikonic
    Inscrit en
    Février 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 197
    Points : 202
    Points
    202
    Par défaut
    salut,

    inspire-toi de l'exemple fourni par Macromedia dans le dossier Samples and Tutorials/Samples/ActionScript/Galleries/gallery_tween.fla (l'Aide fournie par Macromedia est toujours précieuse ), soit ceci en l'occurrence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    var gallery_xml:XML = new XML();
    gallery_xml.ignoreWhite = true;
    gallery_xml.onLoad = function(success:Boolean) {
    	try {
    		/* if you are able to successfully load and parse the gallery from a remote XML file, 
    		   parse out the image names and add them to an array. */
    		if (success) {
    			var images:Array = this.firstChild.childNodes;
    			var gallery_array:Array = new Array();
    			for (var i = 0; i<images.length; i++) {
    				gallery_array.push({src:images[i].firstChild.nodeValue});
    			}
    			/* call the displayGallery function which handles loading in each 
    			   of the gallery images and placing them on the Stage. */
    			displayGallery(gallery_array);
    		} else {
    			throw new Error("Unable to parse XML");
    		}
    	} catch (e_err:Error) {
    		trace(e_err.message);
    	} finally {
    		delete this;
    	}
    };
     
    // load the gallery.xml file from the current directory.
    gallery_xml.load("gallery_tween.xml");
    donc appliqué à ton code, cela donnerait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    monXml = new XML ();
    monXml.ignoreWhite = true;
     
    monXml.onLoad = function (success:Boolean) {
      if (!success) { trace ("Erreur de chargement"); }
      else { 
      /*trace ("menu.xml Chargé avec succès");
      trace (monXml.firstChild.childNodes[0].attributes.titre);*/
      var variable:Array = this.firstChild.childNodes;
      var contenu:Array = new Array();
        for (var i = 0; i<variable.length; i++) {
          contenu.push({titres:variable[i].attributes.titre});
        }
      }
    };
     
    monXml.load ("menu.xml");
    ainsi, ta variable contenu vaudra ceci :
    Array (
    [0] (titres=Vidéo 1),
    [1] (titres=Vidéo 2),
    ...
    )
    et donc tu peux déterminer une nouvelle variable monTexte1 comme ceci :
    monTexte1.text = contenu[0].titres qui te retournera alors Vidéo 1.

    Et oui il est préférable de dormir un peu, sinon ton cerveau devient HS

    Si tu veux aller plus loin dans la récupération d'un fichier XML, je te (re)conseille de t'inspirer du fichier gallery_tween.fla
    piksite.com
    Pour vos photos, images, .... » Carousel.us

Discussions similaires

  1. [XSL] Parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/07/2005, 15h47
  2. [2.1][jdk1.3][Junit] Erreur incompréhensible!
    Par Sniper37 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 29/04/2005, 19h03
  3. Erreur incompréhensible à la ligne 200 (sur 190 ?!)
    Par transistor49 dans le forum Qt
    Réponses: 3
    Dernier message: 22/03/2005, 23h09
  4. [Fichiers] Erreur incompréhensible
    Par Clorish dans le forum Langage
    Réponses: 5
    Dernier message: 14/12/2004, 17h18
  5. [JSP] Erreur incompréhensible
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/09/2003, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo