Flash AS3 e XML:modo per correggere le interruzioni di riga in htmlText che utilizza i tag <b> nell'xml?

StackOverflow https://stackoverflow.com/questions/3011948

  •  26-09-2019
  •  | 
  •  

Domanda

Sto importando il testo da un file XML e sto utilizzando htmlText per cercare di mantenere uno stile con i tag.Ho incorporato sia il carattere normale che quello in grassetto e il grassetto funziona bene.Il problema è che aggiunge spazi attorno alle parole in grassetto come un rientro di paragrafo e poi fa un'interruzione di riga dopo di esse.Cosa sta succedendo, c'è un modo per risolvere?

fromxmlText.htmlText = theXML.contenttext;

Se inserisco il testo da un file txt funzionerà bene, ma estrarlo da un file xml causa una formattazione strana.un piccolo aiuto?

È stato utile?

Soluzione

Per aggiungere HTML in XML è necessario utilizzare CDATA blocca altrimenti l'HTML è considerato parte del documento XML.

per esempio.

<root>
    <someHtml><![CDATA[I can contain<br />html tags]]></someHtml>
    <somePlainText>I cannot contain html tags since they will be 
                   seen as XML nodes</somePlainText>
</root>

Assicurati inoltre di salvare i file XML con terminazioni di riga unix e codificati come utf-8.Se utilizzi terminazioni di riga di Windows (\r\n) allora Flash tende a raddoppiare lo spazio a capo.Il tuo editor dovrebbe permetterti di specificare le terminazioni di riga.

Altri suggerimenti

Sono stato importano mangimi una dinamica rss in un annuncio Flash che in me aveva i tag HTML incorporati. Avevo lo stesso problema. Ho usato regex per trovare e sostituire. Ecco la funzione che stavo usando. è possibile prob utilizzare il mio codice regex in là per fare la stessa cosa. Sembra che stavamo avendo lo stesso problema. Spero che questo aiuta:

funzione Parserover_feature (rover_feature: XML): void {

var s:String = rover_feature.items.item[0].article;
s = s.replace(/(?:<br>)+/gi, '<br>');
s = s.replace(/\n/g, '');
container.info_txt.htmlText = s
//trace (s);

}

E 'difficile da dire senza vedere il tuo XML, ma provate a giocherellare con la globale proprietà XML soprattutto ignoreWhitespace . A seconda delle terminazioni di linea, potrebbe anche essere necessario per togliere loro prima di mettere il testo nel campo di testo.

se si include da XML quindi assicurarsi che si sta utilizzando i tag CDATA per mostrare il codice preformattato, altrimenti si è in uscita il contenuto di nodi multipli in XML.

w3 scuole per maggiori informazioni.

Assicurarsi inoltre che il textField è impostato su multiline prima di impostare il tuo TextField.htmlText = xml con
cioè.

var myText:TextField = new TextField();
myText.multiline = true;
myText.htmlText = (your xml node with the <br/ >);
addChild(myText);

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top