Volledige versie bekijken : info opvragen uit xml
joren
%Europe/Berlin %548 %2005, 14:10
Helaas, ik ben weer vastgelopen en kom er maar niet uit. Ik zit met het volgende probleem. In mijn flashdocument heb ik een lijst gemaakt waarin je een geluidsfragment kunt selecteren die hij uit een xml file haalt. Deze files bevatten een aantal gegevens, zoals naam, nummer, afkomst, enz... Wanneer je zo'n geluid selecteerd moeten deze gegevens in textfields komen te staan. Heeft iemand enig idee hoe ik dit kan doen. Het enige wat ik tot nu toe heb is:
liste.getSelectedItem().data;maar hiermee krijg ik alleen de url waaronder het geluidsfragment zich bevind.
Wie o wie kan mij helpen?
Fl4sh3r
%Europe/Berlin %617 %2005, 15:48
Misschien heb je wat meer informatie.
Hoe ziet de .xml eruit?
Geeft "liste.getSelectedItem().data;" de url van die XML-file of direct van het fragment?
Is uit de url van het fragment dan de url van de xml af te leiden?
Tha Narie
%Europe/Berlin %641 %2005, 16:24
Blijkbaar begrijp je nog niet helemaal hoe de dataProvider van een listBox werkt.
Deze heeft een 'label'-property, daarin staat een String, en deze is zichtbaar in de list.
Verder heeft hij standaard een 'data'-property, waar de data in staat.
Maar een dataProvider is niets anders dan een array met objecten. Je kan hier dus ook een naam, nummer, afkomst, enz property aan hangen.
OF je maakt een object (met die props) in de data-property, jouw keuze.
joren
%Europe/Berlin %645 %2005, 16:29
de xml bestaat uit het volgende:
<playlist>
<stem num="01" naam="Test" url="test1.mp3" geslacht="man" leeftijd="25" afkomst="nederland" />
<stem num="02" naam="Joren" url="test2.mp3" geslacht="vrouw" leeftijd="21" afkomst="belgie" />
<stem num="03" naam="Nick" url="test3.mp3" geslacht="man" leeftijd="32" afkomst="engeland" />
</playlist>
In een lijst kun je nu kiezen uit de stemmen; 01:Test, 02:Joren, 03:Nick
Wanneer je er een selecteerd moet je in een aantal textfields de eigenschappen van die stem kunnen zien. Je klikt bijvoorbeeld de stem "01:Test" aan, dan moet er in een aantal textfields het geslacht, de leeftijd, en de afkomst van die stem komen te staan.
"liste.getSelectedItem().data;" geeft de URL van het geluidsfragment weer. Dus wanneer ik op "01:Test" klik krijg ik te zien: "test1.mp2"
joren
%Europe/Berlin %650 %2005, 16:36
OF je maakt een object (met die props) in de data-property, jouw keuze.
Kan je uitleggen hoe ik dit kan doen? Ik heb al wat geprobeert met de Values van de Labels en Data van de listBox wat aan te passen, maar dat is nog niet gelukt.
Tha Narie
%Europe/Berlin %653 %2005, 16:41
Show eerst even je code waar je dmv addItem of dataProvider de items in je listbox zet.
joren
%Europe/Berlin %656 %2005, 16:45
for (i=0; i<playlist.length; i++) {
liste.addItem(enCours.attributes.num+" - "+enCours.attributes.naam, enCours.attributes.url);
enCours = enCours.nextSibling;
Tha Narie
%Europe/Berlin %664 %2005, 16:57
addItem heeft 2 parameters, label en data. Maar volgens mij kan hij ook een Object mee krijgen:
liste.addItem({label: enCours.attributes.num+" - "+enCours.attributes.naam, url: enCours.attributes.url, afkomst: enCours.attributes.afkomst, lengte: enCours.attributes.lengte});
Maar wat beter zou zijn is eerst die objecten aan een array pushen, en dan die array als dataProvider toewijzen aan de listBox. (zie help voor dataProvider). Dit ivm snelheid en werkbaarheid.
joren
%Europe/Berlin %672 %2005, 17:08
wanneer ik " liste.addItem({label: " toepas, krijg ik te zien [object Object]. Enig idee wat dit betekend? En hoe ik dit kan voorkomen?
Tha Narie
%Europe/Berlin %765 %2005, 19:22
Hmmz, dan maar beter dit doen:
liste.addItem("labelstring", {url: ..., afkomst: ..., ect: ...});
trace(liste.selectedItem.data.url);
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.