Flash AS3 и XML: Способ исправления ломаков строки в HTMLText, который использует теги в XML?
-
26-09-2019 - |
Вопрос
Я импортирую текст в файле XML, и я использую HTMLText, чтобы попытаться сохранить некоторую стайлинг с тегами. У меня есть как обычный, так и смелый шрифт для лица, встроенный, а смелости отлично работает. Проблема заключается в том, что он рекламирует пробелы вокруг слов, жирных, таких как абзац, а затем делает линейный разрыв после них. Что происходит, есть ли способ исправить?
fromxmlText.htmlText = theXML.contenttext;
Если я вытянул текст из TXT-файла, он будет работать нормально, но выводит его из файла XML, вызывающего форматирование Funky. Lil 'Help?
Решение
Чтобы добавить HTML в XML, вы должны использовать CDATA Блоки, в противном случае HTML считается частью XML-документа.
например
<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>
Также убедитесь, что вы сохраните файлы XML с концовками Line Unix и закодированы как UTF-8. Если вы используете окончания линии Windows (\r\n
) Тогда вспышка имеет тенденцию к двойным пространствам. Ваш редактор должен позволить вам указать концовки строки.
Другие советы
Я импортировал динамический канал RSS в мою вспухшую рекламу, у которого есть HTML-теги встроены. У меня была такая же проблема. Я использовал Regex, чтобы найти и заменить. Вот функция, которую я использовал. Вы можете использовать мой код Regex, чтобы сделать то же самое. Похоже, у нас была такая же проблема. Надеюсь это поможет:
Функция 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);
}
Трудно сказать, не видя вашего XML, но попробуйте возиться с Глобальные свойства XML особенно LightoreWhiteSpace. Отказ В зависимости от ваших линейных окончаний вам также может потребоваться распределить их перед тем, как поместить текст в текстовое поле.
Если вы встраиваетесь от XML, то убедитесь, что вы используете теги CDATA, чтобы показать предварительный код, в противном случае вы выводят содержимое нескольких узлов в XML.
видеть W3 школы для получения дополнительной информации.
Также убедитесь, что ваше текстовое поле установлено на multiline
Прежде чем установить ваш TextField.htmltext = XML с
т.е.
var myText:TextField = new TextField();
myText.multiline = true;
myText.htmlText = (your xml node with the <br/ >);
addChild(myText);
Надеюсь это поможет.