17. april 2006 - 23:04
Der er
6 kommentarer og 2 løsninger
XML indhold til Array
Jeg har problemer med at smide info fra et XML ind i et array - kan kun få den ene værdi vist ??? Funktion der laver mine "knapper" doList = function(){ tf = new TextFormat(); tf.font = "Verdana"; tf.size = "10"; tf.bold = true; for (i=0; i<menuArr.length; i++) { var button = this.createEmptyMovieClip("knap"+i, i); with(button) { beginFill(0xCCCCCC, 100); lineTo(0, 20); lineTo(300, 20); lineTo(300, 0); lineTo(0, 0); endFill(); button._y=i*21; button.id=i; button.onRelease = function() { _parent.hent(id); } button.createTextField("knaptekst"+i,2,0,0,300,20); button["knaptekst"+i].text=menuArr[i]; button["knaptekst"+i].setTextFormat(tf); } } } Generering af Array System.useCodepage= true; MY_xml = new XML(); MY_xml.ignoreWhite = true; MY_xml.onLoad = function(success) { if (success) { loadData(MY_xml); } }; MY_xml.load('xml/complex.xml'); function loadData(xmlDoc_xml) { for (n = 0; n<xmlDoc_xml.firstChild.firstChild.childNodes.length; n++) { menuArr = new Array(); menuArr.push(xmlDoc_xml.firstChild.firstChild.childNode [n].firstChild.nodeValue); } doList(); } XML - fil <?xml version="1.0" encoding="iso-8859-1"?> <extern width="350" height="495" antal="4"> <indholdsfortegnelse> <tekst siteno="1">tekst1</tekst> <tekst siteno="4">tekst2</tekst> <tekst siteno="6">tekst3</tekst> <tekst siteno="7">tekst4</tekst> <tekst siteno="10">tekst5</tekst> </indholdsfortegnelse> </extern> Men den udskriver kun "tekst 5 " ??
Annonceindlæg fra Axcess Nordic
17. april 2006 - 23:19
#1
Funktionen bliver først kaldt, når man rent faktisk trykker på knappen. Og når man trykker på knappen, vil værdi har variablen id så? Du er nødt til at hente variablen id fra objektet selv: button.onRelease = function() { _parent.hent(this.id); } Så vil det virke som det skal :) -- Morten Barklund
17. april 2006 - 23:23
#2
min onRelease virker sådan set ok - mit problem er at der kun kommer et element i mit array - så den udskriver - kun "tekst 5" og ikke de 4 andre ?
17. april 2006 - 23:28
#3
Det virker nemlig fint hvis jeg bruger nedenstående: doList = function(){ menuArr = new Array("menupunk0","menupunkt1","menupunkt2"); tf = new TextFormat(); tf.font = "Verdana"; tf.size = "10"; osv..... Så det er vel der hvor jeg laver mit Array det går galt ???
17. april 2006 - 23:33
#4
Oh, hvis din onRelease virker, så bruger du Flash 5 - i nyere versioner vil det ikke virke :) Men ja, der er også en fejl i din oprettelse af det array - du opretter jo arrayet inde i løkken - flyt menuArr = new Array(); uden for løkken :) -- Morten Barklund
17. april 2006 - 23:39
#5
Lol - ja man kan stire sig blind på meget :-) Jeg har lige et tillægsspørgsmål hvis du har tid - skal nok lige hæve points. Vedr. button.onRelease = function() { _parent.hent(this.id); } Hvis nu jeg gerne vil have min Attribut-værdi "siteno" istedet for this.id... er den lige til at løse ?
18. april 2006 - 01:07
#6
Lav et ekstra array, eller lav dit array om til et array af objekter med menupunkt og siteno - og i din løkke hent henholdsvist menupunkt til punktet og siteno til id'et. :)
18. april 2006 - 09:13
#7
Jeg takker mange gange - :-)
18. april 2006 - 10:09
#8
Tark for points :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.