10. april 2004 - 18:47Der er
5 kommentarer og 1 løsning
Hente billeder ind i movieclip via XML
Jeg har problemer med at få hentet billeder fra ind i Flash via XML.
I Flash har jeg et mc_item, der har tre tekstfelter: overskrift indhold url
og et mc, der hedder billeder (det er her, jeg vil hente billeder ind!).
Mit xml-dokument ser således ud: <?xml version="1.0" encoding="UTF-8"?> <items> <indhold name="litteratursiden"> <overskrift>Litteratursiden.dk</overskrift> <indhold>L?s alt om litteratur</indhold> <billeder>logo.jpg</billeder> <url>litteratursiden.dk</url> </indhold> </items>
Det drejer sig altså om logo.jpg, der skal hentes ind i movieclip'et. De tre tekststumper kan jeg godt få hentet ind i de tre tekstfelter.
Er det forkert at oprette en mc til at hente billederne ind (for det skal vel ikke være et tekstfelt?)
//indsæt tekst og billeder i movie-clip'et "bjaelke1", der ligger i "bar_a": _root.bar_a.bjaelke1.overskrift = menuItem[0].firstChild.firstChild.nodeValue; _root.bar_a.bjaelke1.indhold = menuItem[0].firstChild.nextSibling.firstChild.nodeValue; _root.bar_a.bjaelke1.billeder = menuItem[0].firstChild.nextSibling.nextSibling.firstChild.nodeValue; _root.bar_a.bjaelke1.url = menuItem[0].firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
-> der er flere items i array'et "menuItem", men lad os nøjes med at få det første item: overskrift, indhold, billeder og url vist rigtigt.
Hvis der stadig er noget, der ikke giver mening, så spørg endelig igen.
Undskyld, men er det ikke nemmere at skrive din ovenstående kode sådan her:
menuItem = this.firstChild.childNodes; //indsæt tekst og billeder i movie-clip'et "bjaelke1", der ligger i "bar_a": _root.bar_a.bjaelke1.overskrift = menuItem[0].childNodes[0].firstChild.nodeValue; _root.bar_a.bjaelke1.indhold = menuItem[0].childNodes[1].firstChild.nodeValue; _root.bar_a.bjaelke1.billeder = menuItem[0].childNodes[2].firstChild.nodeValue; _root.bar_a.bjaelke1.url = menuItem[0].childNodes[3].firstChild.nodeValue;
Og jo - det er smartest at hente billedet ind i et movieclip - alternativet er et _level, men så kan du ikke forudbestemme hvor dit billede skal vises...
Så lav et movieclip med navnet "imageHolder", og denne kode i _root (eller i det mc, hvor du har din "imageHolder"):
function showImage(path){ imageHolder.loadMovie(path); }
Så kan du vise et billede i "imageHolder" på denne måde... her logo-billedet fra din xml:
showImage(_root.bar_a._bjaelke1.billeder);
Ved at lave det i en funktion kan man senere meget nemt tilføje ekstra features som preloader og slideshow-effekt...
Ok - tak for hjælpen så langt. Desværre kan jeg stadig ikke få det til at virke.
Skal: showImage(_root.bar_a._bjaelke1.billeder); ikke hedde: showImage(_root.bar_a._bjaelke1.imageHolder); ??
Og hvor skal den stå i forhold til denne linje: _root.bar_a.bjaelke1.billeder = menuItem[0].childNodes[2].firstChild.nodeValue; -> det er jo her, den finder ud af, hvor den skal finde billedet henne.
showImage henter billedet med stien angivet i parameteret "path" ind i movieclip'et "imageHolder" - for at denne funktion virker er det vigtigt at du holder styr på dine targets og referencer... Det er nok den fejl du havde lavet...
Men det var så lidt ;)
Synes godt om
Ny brugerNybegynder
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.