- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- formattare testo preso da xml
-
formattare testo preso da xml
salve, ho un problema di cui non vengo a capo.
prevelevo dei testi da un file xml e li faccio apparire in un campo di testo dinamico in flash, che è settato come testo hrml.
come devo scrivere l'xml perchè flash legga i tag della formattazione?
adesso il mio xml è:<?xml version="1.0" encoding="utf-8"?> <notizie> <registro titolo = "Se si smarrisce la carta di credito..." imagen = "imnews/cc.jpg" testo = "Integer sagittis euismod.Etiam lorem, nibh eros, dignissim phasellus.Lorem ipsum dolor sit amet, egestas leo imperdiet. Pharetra vestibulum quisque, aenean phasellus, urna sapien enim.Pellentesque in mi, luctus tristique. In dolor rutrum, luctus turpis id, adipiscing imperdiet."/> <registro titolo = "Se si smarriscono i documenti" imagen = "imnews/pat.jpg" testo = "Pellentesque in mi, luctus tristique. In dolor rutrum, luctus turpis id, adipiscing imperdiet."/> <registro titolo = "Suggerimento numero 3" imagen = "imnews/img3.jpg" testo = "Lorem ipsum dolor sit amet, egestas leo imperdiet. Pharetra vestibulum quisque, aenean phasellus, urna sapien enim."/> </notizie>
ma se inserisco un qualunque tag html nel flash mi appare undefined
qualcuno sa darmi una mano? di xml capisco poco o niente... grazie
-
Ciao claire,
per utilizzare i tags HTML all'interno di un file XML ti consiglio di usare il CDATA.Mi spiego:
Partiamo da un semplice xml:[LEFT]<?xml version='1.0' encoding='iso-8859-1'?> <testo> <item><![CDATA]></item> </testo>[/LEFT]
Con actionscript per recuperare il colore del font:
[LEFT]mioXML.onLoad = function () { trace(this.firstChild.firstChild.firstChild.nodeValue) }[/LEFT]
In questo modo hai un output così:
"<font color='#ff0000'>mio testo</font>"
che puoi passare al tuo campo di testo
-
mmm, più o meno ho capito, solo non so come modificare l'xml che ho fatto ora.
mi spiego, ho 2 campi di testo in flash, uno per il titolo e uno per il testo, e un mc in cui carico l'immagine, avevo provato il cd data cercando su internet, ma in qualunque modo cerco di cambiare l'xml, flash non me lo riconosce più.
al momento in flash carico l'xml così:loadNew = function (xmlObj, indice) { this = xmlObj; if (!indice) { var i = 0; } else { var i = indice; } recordSet.text = Number(actualRecord+1)+"/"+Number(totalRecords+1); if (Number(actualRecord+1) == Number(totalRecords+1)) { nextButton_btn.enabled = false; nextButton_btn.useHandCursor = false; nextButton_btn._alpha = 50; } else { nextButton_btn.enabled = true; nextButton_btn.useHandCursor = true; nextButton_btn._alpha = 100; } if (Number(actualRecord+1) == 1) { prevButton_btn.enabled = false; prevButton_btn.useHandCursor = false; prevButton_btn._alpha = 50; } else { prevButton_btn.enabled = true; prevButton_btn.useHandCursor = true; prevButton_btn._alpha = 100; } item.titolo.text = this.firstChild.childNodes*.attributes.titolo; item.testo.htmlText = this.firstChild.childNodes*.attributes.testo; item.holder.loadMovie(this.firstChild.childNodes*.attributes.imagen); }; novitàXML = new XML(); novitàXML.ignoreWhite = true; novitàXML.onLoad = function(succes) { if (succes) { item = attachMovie("notizie_mc", "novi", this.getNextHighestDepth(), {_x:0, _y:0}); actualRecord = 0; totalRecords = this.firstChild.childNodes.length-1; recordSet.text = Number(actualRecord+1)+"/"+Number(totalRecords+1); prevButton_btn.enabled = false; prevButton_btn.useHandCursor = false; prevButton_btn._alpha = 50; loadNew(novitàXML); } else { trace("File not loaded"); } nextButton_btn.onRollOver = function() { this.gotoAndPlay(2); }; nextButton_btn.onRollOut = function() { this.gotoAndPlay(8); }; nextButton_btn.onRelease = function() { if (actualRecord<totalRecords) { actualRecord += 1; loadNew(novitàXML, actualRecord); } novi.carim(); }; // -- prevButton_btn.onRollOver = function() { this.gotoAndPlay(2); }; prevButton_btn.onRollOut = function() { this.gotoAndPlay(8); }; prevButton_btn.onRelease = function() { novi.carim(); if (actualRecord>0) { actualRecord -= 1; loadNew(novedadesXML, actualRecord); } }; }; novitàXML.load("news.xml");
suggerimenti?
-
Per utilizzare il CDATA devi fare esattamente come il mio esempio, lopuoi utilizzare in ogni nodo del tuo xml.
Quando con Flash recuperi i nodi xml dove utilizzi il CDATA, devi sempre usare il nodeValue altrimenti non hai un corretto output.
-
ora ci riprovo.. speriamo bene.. ma tieni d'occhio questa discussione perchè temo che tornerò