Avatar billede bingokaj Nybegynder
10. september 2004 - 20:42 Der er 4 kommentarer og
1 løsning

adgang til movieclip via variabel i et loop

Okay, nu kan det godt være at det totalt er mig der er dumme-peter her, men jeg er ved at gå i SPÅNER over nedenstående mini-problem, så al hjælp modtages med glæde :-)

Jeg har en function, som looper en xml-fil igennem og duplikerer et movieclip (mc_overskrift) for hver gang den finder en xml-node der hedder "overskrift". Det eneste der findes i mit movieclip er et tekstfelt, hvis instance name er "overskrift" og dets variabel "overskrift_var". Som I kan se nummererer jeg mine movieclips fortløbende (mc_overskrift1, mc_overskrift2, etc). Mit problem er at jeg ikke kan sætte værdien af mit tekstfelt til den tilsvarende node-værdi fra xml-filen. Det er det jeg forsøger at gøre i linjen:

_root.mc_overskrift[i].overskrift.text = "hej";

Jeg har prøvet at ændre linjen til _root.mc_overskrift1.overskrift.text = "hej"; (hvilket virker fint)

Så problemet må være at den ikke kan sammensætte mc_overskrift med [i] og få mc_overskrift1,etc. Men hvorfor, hvorfor,  HVORFOR ?!?? (lyden af mig der gentagne gange slår hovedet mod den spidse kant på skrivebordet)




function XMLOut(xml_file, minchild){
i = 0;
minx = 50;
for ( a = 0; a < xml_file.firstChild.childNodes.length;  a++) {
    for(z = 0; z < xml_file.firstChild.firstChild.childNodes.length; z++){
        trace(xml_file.firstChild.childNodes[a].childNodes[z].firstChild.nodeValue);
       
        if (xml_file.firstChild.childNodes[a].childNodes[z].nodeName == "overskrift") {
        i++;
        minx = minx+50;
        duplicateMovieClip(_root.mc_overskrift, "mc_overskrift"+i, i);
        setProperty("mc_overskrift"+i, _y, minx);
        _root.mc_overskrift[i].overskrift.text = "hej";
        trace (eval("sp" + i);)
        }
    }
}
}
Avatar billede barklund Nybegynder
10. september 2004 - 21:09 #1
function XMLOut(xml_file, minchild){
i = 0;
minx = 50;
for ( a = 0; a < xml_file.firstChild.childNodes.length;  a++) {
    for(z = 0; z < xml_file.firstChild.firstChild.childNodes.length; z++){
        if (xml_file.firstChild.childNodes[a].childNodes[z].nodeName == "overskrift") {
        i++;
        var m = duplicateMovieClip(_root.mc_overskrift, "mc_overskrift"+i, i);
        m._y = minx + a*50;
        m.overskrift.text = xml_file.firstChild.childNodes[a].childNodes[z].firstChild.value;
        }
    }
}
}

Hvis du har nogle <overskrift>her er en overskrift</overskrift> så burde ovenstående virke. duplicateMovieClip returnerer en reference til det nye movieclip.
Avatar billede barklund Nybegynder
12. september 2004 - 04:28 #2
Nåja, og det ville have virket med _root["overskrift"+i].overskrift.text, men ovenstående løsning er lidt pænere :)
Avatar billede barklund Nybegynder
12. september 2004 - 04:30 #3
Skulle ikke have været et svar, men hvis du kan bruge det, så er det et svar :)
Avatar billede bingokaj Nybegynder
23. september 2004 - 22:35 #4
hej barklund, undskyld den sene respons :-(

_root["overskrift"+i].overskrift.text viste sig at være det der skulle til...

mange tak for hjælpen!
Avatar billede barklund Nybegynder
23. september 2004 - 23:35 #5
Nu er den anden version postet i min første kommentar lidt kønnere - men tak for svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester