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 MX] Exploitation fichier xml prob avec boucle


Sujet :

Flash

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut [FLASH MX] Exploitation fichier xml prob avec boucle
    Bonjour @ tous
    Le code ci dessous fonctionne bien
    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
     
    donnees_xml = new XML(); 
    donnees_xml.ignoreWhite = true; 
    donnees_xml.onLoad = function(ok) 
    {
    	if (ok){
    		noeuds = this.firstChild.childNodes; 
    		{ 
    		test1 = noeuds[0].attributes.couleur;
    		ma_color = new Color(c1);
    		ma_color.setRGB(test1);
    		c1.onRelease = function()
    		{
    		_root.infos.text="hello";
    		}
    		test1 = noeuds[1].attributes.couleur;
    		ma_color = new Color(c2);
    		ma_color.setRGB(test1);
    		c1.onRelease = function()
    		{
    		_root.infos.text="hello2";
    		}
     
    	}
    	}
    }
    donnees_xml.load("datacolor.xml");
    Je souhaite amélioré en bouclant sur c[i] (nombre d'occurence = nombre de noeuds)
    Mais ma boucle ne marche pas les couleurs ne se modifient pas

    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
     
    ...
    noeuds = this.firstChild.childNodes; 
    j=1
        for (var i =0; i < noeuds.length; i++)
             {
    	Lacolor = noeuds[i].attributes.couleur;
    	ma_color = new Color(c[j]);
    	ma_color.setRGB(Lacolor);
     
                        c[j].onRelease = function()
    		{
    		_root.infos.text="hello2";
    		}
                   j=j+1
             }
    ...
    Merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    Je comprends pas tout à ton code, il sert à quoi i ?
    sinon, ssaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clip_conteneur_de_c["c"+j].onRelease = ...
    Autre chose, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(var i=0, j=1; i<10; i++,j++) {
    	...
    }
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Bonjour,
    l'objectif de mon code est de colorer a lecture d'un attribut d'un element xml une occurence falsh Mx, et lors d'un click sur l'occurence afficher des donnees complémentaires.
    La lecture statique des noeuds ne me pose pas de problême genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    noeuds = this.firstChild.childNodes; 
          { 
          test1 = noeuds[0].attributes.couleur; 
          ma_color = new Color(c1); 
          ma_color.setRGB(test1); 
          c1.onRelease = function() 
          { 
          _root.infos.text="hello"; 
          }
    La lecture en boucle des noeuds je n'yarrive pas
    i représente les noeuds et j l'indice d'occurence(si j'avais nommé ma première occurence c0 j'aurais utilisé que i...)
    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
    donnees_xml = new XML(); 
    donnees_xml.ignoreWhite = true; 
    donnees_xml.onLoad = function(ok) 
    {
    if (ok){
    		noeuds = this.firstChild.childNodes;
     
    	 for(var i=0, j=1; i<10; i++,j++)
                     {
    		 test1 = noeuds[i].attributes.couleur;
    		 ma_color = new Color(c[j]);
    		 ma_color.setRGB(test1);
    		 c1.onRelease = function()
    		   {
    		  _root.infos.text = "Test"[i];
    		   }
                     }
     
     
         }
    }
    donnees_xml.load("datacolor.xml");
    Merci de ton aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  4. #4
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    la je capte pas du tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(var i=0, j=1; i<10; i++,j++)
                     {
           test1 = noeuds[i].attributes.couleur;
           ma_color = new Color(c[j]);
           ma_color.setRGB(test1);
           c1.onRelease = function()
             {
            _root.infos.text = "Test"[i];
             }
                     }
    on peut faire ca avec le for deux intérations

  5. #5
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Bonjour et merci de ton aide
    Mes occurences se nomment c0 c1 c2, elles doivent a lecture de mon fichier xml adopter la couleur de l'attribut auxquel elle sont associés :
    c0 = canton1
    c1 = canton2
    c2 = canton3

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <statistiques> 
    	<canton num="01" couleur="0x993366">
    		<DonneesA>25</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    	<canton num="02" couleur="0x663399">
    		<DonneesA>30</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    	<canton num="03" couleur="0x336699">
    		<DonneesA>25</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    </statistiques>
    mon fichier flash:
    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
     
    donnees_xml = new XML(); 
    donnees_xml.ignoreWhite = true; 
    donnees_xml.onLoad = function(ok) 
    {
    	if(ok){
    		noeuds = this.firstChild.childNodes;
    		for(var i = 0; i < noeuds.length; i++) 
    		{
    		var test1 = noeuds[i].attributes.couleur;
    		ma_color = new Color(c[i]);
    		ma_color.setRGB(test1);
    		}
    		c1.onRelease = function() 
             { 
            _root.infos.text = "Test"[i]; 
             } 
                     } 
     
    }
    donnees_xml.load("datacolor.xml");
    et là ça marche pas...



    Ci dessous ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (ok){
    		noeuds = this.firstChild.childNodes; 
    		{ 
    		test1 = noeuds[0].attributes.couleur;
    		ma_color = new Color(c1);
    		ma_color.setRGB(test1);
    		}
    merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  6. #6
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    lorsque tu dis que ca ne marche pas
    tu as quoi dans ton trace ?
    dans ta varaible noeud il y a qqch ?

  7. #7
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    ça marche pas signifie que la colueur d'origine est inchangée
    voilà le contenu de ma Variable _level0.noeuds

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Niveau #0:
    Variable _level0.noeuds = [objet #2, class 'Array'] [
        0:[objet #3, class 'XMLNode'] {
          <canton num="01" couleur="0x993366">
            <DonneesA>
              25
            </DonneesA>
            <DonneesB>
              10
            </DonneesB>
          </canton>
        },
        1:[objet #4, class 'XMLNode'] {
          <canton num="02" couleur="0x663399">
            <DonneesA>
              30
            </DonneesA>
            <DonneesB>
              10
            </DonneesB>
          </canton>
        },
        2:[objet #5, class 'XMLNode'] {
          <canton num="03" couleur="0x336699">
            <DonneesA>
              25
            </DonneesA>
            <DonneesB>
              10
            </DonneesB>
          </canton>
        }
      ]
    Variable _level0.ma_color = [objet #6, class 'Color'] {}
    Clip: Cible="_level0.c0"
    Clip: Cible="_level0.c2"
    Clip: Cible="_level0.c1"
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  8. #8
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    ah ok

    c parce que c un string alors que les couleurs sont des number

  9. #9
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Pourquoi quand je fais ça cela marche (sans boucle dans le code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (ok){
    		noeuds = this.firstChild.childNodes; 
    		{ 
    		test1 = noeuds[0].attributes.couleur;
    		ma_color = new Color(c1);
                                    ma_color.setRGB(test1);
                                    }
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Variable _level0.test1 = "0x993366"
    Variable _level0.ma_color = [objet #6, class 'Color'] {}
    Clip: Cible="_level0.c1"
    [code]
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  10. #10
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Si je comprends faut que je tansforme c[i] en string non
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  11. #11
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    tout simplement concaténation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_color = new Color("c"+[i]);
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Création de fichier XML dynamique avec PHP
    Par daninho dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 02/02/2006, 11h18
  2. Réponses: 2
    Dernier message: 01/06/2005, 14h28
  3. Valider fichier XML : problème avec la DTD
    Par SkIllz2k dans le forum Valider
    Réponses: 2
    Dernier message: 26/04/2005, 17h15
  4. Réponses: 4
    Dernier message: 07/05/2004, 21h15

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