Flash AS3 e XML: Maneira de corrigir quebras de linha no HTMLText que usa tags no XML?

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

  •  26-09-2019
  •  | 
  •  

Pergunta

Estou importando texto em um arquivo XML e estou usando o HTMLText para tentar manter algum estilo com tags. Eu tenho a fonte de face regular e ousada incorporada, e o negrito funciona bem. O problema é que ele anuncia espaços em torno das palavras em negrito como um recuo de parágrafos e depois faz um quebra de linha depois delas. O que está acontecendo, existe uma maneira de consertar?

fromxmlText.htmlText = theXML.contenttext;

Se eu puxar o texto de um arquivo txt, ele funcionará bem, mas retirá -lo de um arquivo XML, causando formatação descolada. Lil 'ajuda?

Foi útil?

Solução

Para adicionar html ao xml, você deve usar CDATA Caso contrário, o HTML é considerado parte do documento XML.

por exemplo

<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>

Verifique também que você está salvando seus arquivos XML com terminações da linha UNIX e codificadas como UTF-8. Se você estiver usando terminações de linha do Windows (\r\n) Em seguida, o Flash tende a dobrar as linhas de espaço. Seu editor deve permitir que você especifique os finais da linha.

Outras dicas

Eu estava importando um feed RSS dinâmico em um anúncio meu flash que tinha tags HTML incorporadas. Eu estava tendo o mesmo problema. Eu usei Regex para encontrar e substituir. Aqui está a função que eu estava usando. Você pode usar meu código regex lá para fazer a mesma coisa. Parece que estávamos tendo o mesmo problema. Espero que isto ajude:

função 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);

}

É difícil dizer sem ver seu XML, mas tente mexer com o Propriedades XML globais especialmente ignorewhitespace. Dependendo das extremidades da sua linha, você também pode precisar retirá -las antes de colocar o texto no campo de texto.

Se você estiver incorporando a XML, verifique se está usando tags CDATA para mostrar o código pré -formado; caso contrário, estará emitindo o conteúdo de vários nós no XML.

Vejo Escolas W3 para mais informações.

Verifique também se o seu campo de texto está definido como multiline Antes de definir seu textfield.htmltext = xml com
ou seja

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

Espero que isto ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top