Во-первых, давайте нормализуем содержание html (я добавил тег <content>
, чтобы сделать его действительным):
var mytext:XML = XML("<mytext><![CDATA[<content>My name is <color value="FF0000">Bill</color>.</content>]]></mytext>");
Следующим шагом является анализ данного XML:
var roughXML:XML = XML(mytext.text().toString());
Затем вы должны заменить свои пользовательские теги стандартными тегами:
var output:XML = XML("<span/>");
for each(var tag:XML in roughXML.children())
{
if (tag.name() == "color")
{
var fontTag:XML = XML("<font/>");
fontTag.@color = tag.@value.toString();
fontTag.appendChild(tag.text());
output.appendChild(fontTag);
}
//you can add here any rule for substitution that you need
else
{
output.appendChild(tag);
}
}
И, наконец, вы можете использовать s:RicheEditableText
для отображения вашего текста
var textFlow:TextFlow = TextConverter.importToFlow(output.toXMLString(), TextConverter.TEXT_FIELD_HTML_FORMAT);
myRichEditableText.textFlow = textFlow;