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 :

[FLASH MX2004] Pbm Flash - ActionScript [Débutant(e)]


Sujet :

Flash

  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Par défaut [FLASH MX2004] Pbm Flash - ActionScript
    Bonsoir à tous,

    J'ai une petite question à propos de la création dynamique d'éléments sous Flash...

    Alors, je souhaiterai mettre en place une apge avec des liens vers d'autres sites Internet... via un fichier XML et Flash.

    Mon XML se compose comme suit :
    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
    <liens>
     <site>
            <nom>site1</nom>
            <url>http://www.site1.com</url>
            <detail>Cool le site1</detail>
     </site>
     <site>
            <nom>site2</nom>
            <url>http://www.site2.com</url>
            <detail>Cool le site2</detail>
     </site>
     <site>
            <nom>site3</nom>
            <url>http://www.site3.com</url>
            <detail>Cool le site3</detail>
     </site>
     <site>
            <nom>site4</nom>
            <url>http://www.site4.com</url>
            <detail>Cool le site4</detail>
     </site>
    </donnees>
    Dans mon animation Flash, je souhaiterai afficher 3 liens par page avec la description à côté... Pour cela j'ai créé un MovieClip nommé "mctitre" comportant une zone de texte "titre" et une zone de texte nommée "detail".

    Voici l'AS pour charger le premier noeud 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
    13
    14
    15
    16
    17
    18
    19
    20
    var sites:Array = new Array();
    classe = new XML();
    classe.load("fichier.xml");
    classe.ignoreWhite = true;
    classe.onLoad = function(etatCharge) {
    	if (etatCharge) {
    		trace("fichier.xml = "+this);
    		sitenode =classe.firstchild.firstchild;
    		while (sitenode.nodeName == "site") {
    			nom = sitenode.attributes.nom;
    			url = sitenode.attributes.url;
    			description = sitenode.attributes.detail;
    			var site:Array = new Array(nom, url, description);
    			trace("site = "+site);
    			sites.push(site);
    			sitenode = sitenode.nextsibling;
    		}
    		trace("sites = "+sites);
    	}   
    };

    Voici ma sortie... où mes tableaux de données sont VIDES !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fichier.xml = <liens><site nom="site1" url="http://www.site1.com" detail="Cool le site1" /><site nom="site2" url="http://www.site2.com" detail="Cool le site2" /><site nom="site3" url="http://www.site3.com" detail="Cool le site3" /></liens>
    site = 
    site = 
    site = 
    sites =
    Je souhaiterai savoir si ma méthode est correcte ET surtout... avoir de l'aide pour balayer tout mon fichier XML et créé à la volée les champs correspodants genre mctitre2 + titre2 + detail2 ... (option pour plus tard... ne mettre que 3 liens par page)... oui je suis un débutant ;-))))

    Merci d'avance.

    Jordel.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 102
    Par défaut
    La propriété nextSibling renvoie null si il n'y a pas de noeud apres.

    Tu devrais essayer de l'utiliser dans ta boucle while au lieu du nodeName=="site"..

    Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     while (sitenode = sitenode.nextsibling) { 
             nom = sitenode.attributes.nom; 
             url = sitenode.attributes.url; 
             description = sitenode.attributes.detail; 
             var site:Array = new Array(nom, url, description); 
             trace("site = "+site); 
             sites.push(site);          
          }
    Je suis pas sûr de ce que je dit... je suis un debutant aussi ..
    bon courage ++

  3. #3
    Membre expérimenté Avatar de younes_
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 229
    Par défaut
    D'après ton code actionscript, tu veux récupérer les infos dans des attribues, dans ce cas le fichier xml doit avoir la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <liens>
     <site nom="site1" url="http://www.site1.com" detail="Cool le site1"></site>
     <site nom="site1" url="http://www.site1.com" detail="Cool le site1"></site>
    </liens>
    Il y aussi une erreur dans le code actionscript, firstChild s'écrit avec un C majuscule pour Child

    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
     
    var sites:Array = new Array();
    var classe:XML = new XML();
    classe.load("fichier.xml");
    classe.ignoreWhite = true;
    classe.onLoad = function(etatCharge) {
       if (etatCharge) {
          sitenode = this.firstChild.firstChild;
          while (sitenode.nodeName == "site") {
             nom = sitenode.attributes.nom;
             url = sitenode.attributes.url;
             description = sitenode.attributes.detail;
             var site:Array = new Array(nom, url, description);
             trace("site = "+site);
             sites.push(site);
             sitenode = sitenode.nextsibling;
          }
          trace("sites = "+sites);
       }   
    };
    Voila a+

Discussions similaires

  1. [FLASH MX2004] Interpolations en ActionScript ?
    Par Invité dans le forum Flash
    Réponses: 4
    Dernier message: 01/03/2006, 21h59
  2. [FLASH MX2004] PHP => flash
    Par Destiny dans le forum Flash
    Réponses: 1
    Dernier message: 12/09/2005, 12h06
  3. [FLASH MX2004] Javascript --> Flash
    Par bomber dans le forum Flash
    Réponses: 5
    Dernier message: 03/03/2005, 16h25
  4. [FLASH MX2004] [PHP/FLASH] Probleme de LoadVar
    Par dedella_al dans le forum Flash
    Réponses: 8
    Dernier message: 16/07/2004, 18h56
  5. Communication C++ <--> Flash MX ou Flash MX2004
    Par loupiloup dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/01/2004, 20h58

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