04. november 2008 - 16:35Der er
7 kommentarer og 1 løsning
laver dobbelt linieskift i Flash ved hentning af tekst fra XML
Hej
Jeg har det problem at når jeg laver linieskift i min XML tekst, så laver den dobbelt linieskift i min Flash når teksten hentes ind i mit dynamisk tekstfelt.
Du skal behandle dit XML, før du outputter det. Hvis dit XML-objekt er representeret ved Xml, så skal du bare have følgende stykke kode, og så duer det:
Xml.data = Xml.data.split("\r").join("");
Det er fordi, din tekstfil/xml-fil skriver linjeskift som \r\n, men Flash læser \r\n som to linjeskift. Så vi sletter bare \r, så der kun står \n tilbage. \n står for "new line", og \r står for "retarded abbrevilation".
Kan ikke få det til at virke, hvad vil du erstatte med Xml og hvor skal det sættes ind?
//Create the loader, set dataFormat to text //and listen when data is loaded var loader:URLLoader = new URLLoader() loader.dataFormat = URLLoaderDataFormat.TEXT loader.addEventListener(Event.COMPLETE, onLoadXML) loader.load(new URLRequest("anastasio.xml"))
loader.data = loader.data.split("\r").join("");
function onLoadXML(ev:Event){ try{ //Convert the downloaded text into an XML var myXML:XML = new XML(ev.target.data) var list:XMLList = myXML..title //walks the list and show in textfields for(var i=0; i<list.length(); i++){ //trace(list[i].@name+"-"+list[i].comments+" -"+list[i].comments+" - "+list[i].image) this["Title_txt"+i].text = list[i].@overskrift
this["Dato_txt"+i].text = list[i].dato
this["Comments_txt"+i].text = list[i].besked var loader:Loader = new Loader() this["holder_mc"+i].addChild(loader) loader.load(new URLRequest(list[i].billede)) } } catch (e:TypeError){ //Could not convert the data, probavlu because //because is not formated correctly trace("Could not parse the XML") trace(e.message) } }
Du skal først modificere "data", når den er blevet sat til noget, og det er den først i din funktion onLoadXML:
//Create the loader, set dataFormat to text //and listen when data is loaded var loader:URLLoader = new URLLoader() loader.dataFormat = URLLoaderDataFormat.TEXT loader.addEventListener(Event.COMPLETE, onLoadXML) loader.load(new URLRequest("anastasio.xml"))
loader.data = loader.data.split("\r").join("");
function onLoadXML(ev:Event){ try{ //Convert the downloaded text into an XML var myXML:XML = new XML(ev.target.data.split("\r").join("")) var list:XMLList = myXML..title //walks the list and show in textfields for(var i=0; i<list.length(); i++){ //trace(list[i].@name+"-"+list[i].comments+" -"+list[i].comments+" - "+list[i].image) this["Title_txt"+i].text = list[i].@overskrift
this["Dato_txt"+i].text = list[i].dato
this["Comments_txt"+i].text = list[i].besked var loader:Loader = new Loader() this["holder_mc"+i].addChild(loader) loader.load(new URLRequest(list[i].billede)) } } catch (e:TypeError){ //Could not convert the data, probavlu because //because is not formated correctly trace("Could not parse the XML") trace(e.message) } }
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.