Problème de boucle for() imbriquées et XML

boozyboozy Messages postés 8 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 2 décembre 2008 - 2 janv. 2007 à 18:14
boozyboozy Messages postés 8 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 2 décembre 2008 - 4 janv. 2007 à 16:23
Bonjour, voila plusieurs jours que je me
prends la tête sur un bout de code avec des boucles for() imbriquées...
Je comprends bien le problème mais je suis incapable de le solutionner,
ce doit pourtant être assez simple !

C'est pourquoi je fais appel à vous dans ce sens, en espérant que vous pourrez m'aider...

voila le code en question :

//charge les données du XML

charge = new XML();

charge.load("module.xml");

charge.ignoreWhite = true;

charge.onLoad = function() {
    // réduit les trois premiers niveaux du XML à racine

    racine = this.childNodes[0].childNodes[0].firstChild;
    // récupère le nombre total de noeud à ce niveau

    nbrNoeuds = racine.childNodes.length;
    // charge les différents noeuds

    for (gros=0; gros<nbrNoeuds; gros++) {
        // charge les différents ronds aux coordonnées x,y

        occ_target.attachMovie("rond",
"monRond"+gros, gros,
{_x:racine.childNodes[gros].childNodes[0].firstChild.nodeValue,
_y:racine.childNodes[gros].childNodes[1].firstChild.nodeValue});
        // charge la couleur du rond

        var color:Color = new Color(occ_target["monRond"+gros].rond);

        color.setRGB(racine.childNodes[gros].childNodes[4].firstChild.nodeValue);
        //charge l'alpha du rond

       
occ_target["monRond"+gros].rond._alpha =
racine.childNodes[gros].childNodes[5].firstChild.nodeValue;
        //charge le texte de l'infobulle

       
occ_target["monRond"+gros].vMontxt =
racine.childNodes[gros].childNodes[2].firstChild.nodeValue;
        //charge l'image externe

 occ_target["monRond"+gros].occ_target_img.loadMovie(racine.childNodes[gros].childNodes[3].firstChild,
_root["monRond"+gros].occ_target_img);
        //charge l'angle de rotation du rond

       
occ_target["monRond"+gros].occ_target_img._rotation =
racine.childNodes[gros].childNodes[5].firstChild.nodeValue;
        //charge le lien du rond -
Le problème est ici pour créer le lien, il a ABSOLUMENT besoin d'une
deuxième boucle (je ne comprend d'aiileurs pas pourquoi, mais sinon, il
renvoie un undefined. Seulement le boucle marche 24x, ce qui est bien
sûr beaucoup trop :-). J'ai également essayé de sortir la boucle for ()
de la première mais ca ne marche plus du tout !

        nbrLiens = nbrNoeuds;

        id = racine.childNodes[gros];

        occ_target["monRond"+gros].onPress = function() {

            //for (gros2=0; gros2<nbrLiens; gros2++) {

            trace(getURL(racine.childNodes[gros].childNodes[7].firstChild));

            trace(nbrLiens);

            //trace(id);

            //trace(racine.childNodes[gros2].childNodes[7].firstChild);

            //}

        };

    }

};


Merci d'avance pour votre aide, et
Bonne année 2007 encodées encore !!! 


Boozy
qui aime les pommes sans ver :-)

1 réponse

boozyboozy Messages postés 8 Date d'inscription mardi 1 août 2006 Statut Membre Dernière intervention 2 décembre 2008
4 janv. 2007 à 16:23
Bonjour,

Après m'être vraiment pris la tête sur tout un  tas de truc, voici la solution à mon problème :

[as]

        //charge le lien du rond

        nbrLiens = racine.childNodes.length;

        //récupère la valeur de i à chaque clic

        var monLien;

        //récupère i à chaque clic

        for (var i = 0; i<=nbrLiens; i++) {

            monLien = occ_target["monRond"+i];

            //incrémente le numéro i

            monLien.num = i;

            monLien.onPress = function() {

                trace(i);

                //récupère le numéro du noeud cliqué

                trace(this.num);

                //récupère le lien XML

           
   
trace(racine.childNodes[this.num].childNodes[7].firstChild.nodeValue);

           
   
getURL(racine.childNodes[this.num].childNodes[7].firstChild.nodeValue);

            };

        }/as

Bonne journée à vous


boozy

qui aime les pommes sans ver
0
Rejoignez-nous