XML ondersteboven inladen in Flash

Ben ik weer :D

Heb deze code:

[code:1:8268ea93d0]xmlNode = this.firstChild;
postedby = [];
datee = [];
description = [];
link = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
datee[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
postedby[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
description[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
link[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
}
[/code:1:8268ea93d0]

Daarmee laad ik een XML file in in Flash. Maar nu wil ik het XML file van onder naar boven inladen. Oftewel als hij de XML data gaat tonen, dat hij als 1ste met de onderste data begint. Ipv. boven naar beneden, nu dus van beneden naar boven :slight_smile:

[quote:20ee72b644] for (i=0; i<total; i++) { [/quote:20ee72b644]

(vreemde uitlijning trouwens)

veranderen naar:

[code:1:20ee72b644]
for (i=total; i>=0; i–)
[/code:1:20ee72b644]

Succes ermee.

[quote:3ceb80bbee="ciaumb"][quote:3ceb80bbee] for (i=0; i<total; i++) { [/quote:3ceb80bbee]

(vreemde uitlijning trouwens)

veranderen naar:

[code:1:3ceb80bbee]
for (i=total; i>=0; i–)
[/code:1:3ceb80bbee]

Succes ermee.[/quote:3ceb80bbee]

Het verandert er niets aan :?

'k Had je post niet volledig gelezen.

Bij het weergeven van de data gebruik je waarschijnlijk ook een for loop,
in deze for loop, gebruik je dan:
for (i=total; i>=0; i–)
Zo geef je het laatste element eerst weer en vervolgens de rest.

OF

Als je ze wil rangschikken bij het inladen,
dan gebruik je bijv.:

[code:1:e078312dd2]
for (i=1; i<=total; i++) {
datee[total-i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
postedby[total-i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
description[total-i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
link[total-i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
}
[/code:1:e078312dd2]

Succes ermee.

[quote:5479db4f69] Als je ze wil rangschikken bij het inladen, dan gebruik je bijv.: [code:1:5479db4f69] for (i=1; i<=total; i++) { datee[total-i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; postedby[total-i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; description[total-i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue; link[total-i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue; } [/code:1:5479db4f69] [/quote:5479db4f69]

Dat heb ik geprobeerd, en het werkt, alleen de eerste entrie geeft hij dan niet weer, de rest wel, hoe laat ik de eerste ook weergeven? :slight_smile:

Arrays zijn 0-based, ze beginnen dus vanaf 0.

Dus als je het allemaal eens overloopt,
zal je zien dat je bij het inladen met
i=1
je begint met de hoogste waarde-1.
Er zitten dus bijv. 2 elementen in je array en de hoogste waarde is array[1],
de laagste waarde is arrNaam[0]

Bij het overlopen, om ze weer te geven,
moet je beginnen vanaf 0.

(tip: bekijk de programmeerbeginselen misschien eens deftig, zodat je de code ook snapt)

[quote:fe40445b87="ciaumb"]Arrays zijn 0-based, ze beginnen dus vanaf 0.

Dus als je het allemaal eens overloopt,
zal je zien dat je bij het inladen met
i=1
je begint met de hoogste waarde-1.
Er zitten dus bijv. 2 elementen in je array en de hoogste waarde is array[1],
de laagste waarde is arrNaam[0]

Bij het overlopen, om ze weer te geven,
moet je beginnen vanaf 0.

(tip: bekijk de programmeerbeginselen misschien eens deftig, zodat je de code ook snapt)[/quote:fe40445b87]

Als ik hem op 0 zet zoals hier:

[code:1:fe40445b87]i=0; i<=total; i++)[/code:1:fe40445b87]

Dan geeft ie nog steeds de eerste niet weer :frowning:
Sorry dat ik dat niet snap

Dus als in je array 5 elementen zitten, dan zal de ordening er zo uitzien:

Element 1 heeft array positie 0
Element 2 heeft array positie 1
Element 3 heeft array positie 2
Element 4 heeft array positie 3
Element 5 heeft array positie 4

Je hoeft je niet te excuseren hoor, maar is het gelukt?

Indien niet,
is het misschien het handigste om de volledige code te posten (in- en uitlezen).

Indien wel,
:slight_smile: Smilen maar.

[quote:9d2b3e8268="ciaumb"]Je hoeft je niet te excuseren hoor, maar is het gelukt?

Indien niet,
is het misschien het handigste om de volledige code te posten (in- en uitlezen).

Indien wel,
:slight_smile: Smilen maar.[/quote:9d2b3e8268]

Nope niet gelukt :frowning:

[code:1:9d2b3e8268]xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.load("entries.xml");
xmlData.onLoad = function(success) {
if (success) {
xmlNode = this.firstChild;
postedby = [];
datee = [];
description = [];
link = [];
total = xmlNode.childNodes.length;
for (i=1; i<=total; i++) {
datee[total-i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
postedby[total-i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
description[total-i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
link[total-i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
}
firstImage();
_root.titel.error.text = "XML data loaded"
} else {
_root.titel.error.text = "Failed to load XML data"
}
};
xmlData.load("entries.xml");[/code:1:9d2b3e8268]

@ Konijn

Als je naar mijn code kijkt, dan zie je toch dat ik bij positie 0 ben begonnen en doorga tot 3?

De array wordt toch goed opgevuld?

Naar mijn ondervinding komen alle nodes in de array in flash,
maar ik snap niet waar je code is om de ingelezen array te verwerken.

:?

(wel anderhalf jaar geen actionscript meer gezien)

Jesper,

Kun je niet gewoon de volgorde omdraaien>?

[code:1:c25327c46f][0].firstChild.nodeValue;
postedby[total-i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
description[total-i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
link[total-i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue; [/code:1:c25327c46f]

wordt dan:

[code:1:c25327c46f][3].firstChild.nodeValue;
postedby[total-i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
description[total-i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
link[total-i] = xmlNode.childNodes[i].childNodes[0firstChild.nodeValue; [/code:1:c25327c46f]

dan laadt ie toch onderste boven? je draait dan toch gewoon om wat hij het eerst moet uitlezen.
of is mijn logica net ff te veel voor flash :slight_smile:

Nou ja succes en hopelijk heb je er wat aan…
BIEG

@ Bieg

Helaas zo werkt het niet, wat je nu doet is alleen de volgorde van de items binnen een entry omgekeerd inladen.