1

我希望将以下文本简单地附加到现有spark.components.TextArea的文本流中:

<b>something</b>: hello world

我尝试使用以下代码执行此操作,但没有任何反应:

this.textarea.textFlow.addChild(TextConverter.importToFlow(
        "<b>something</b>: hello world", 
        TextConverter.TEXT_FIELD_HTML_FORMAT));

我怎样才能做到这一点?我知道在旧mx.controls.TextArea组件中,我可以简单地做:

this.textarea.htmlText += "<b>something</b>: hello world";

如何使用spark.components.TextArea组件中表达的新 TLF/FTE API 执行此操作?

4

2 回答 2

2

我理解你对这个的痛苦。这是我想出的解决方法:

var tf:TextFlow = TextConverter.importToFlow("<b>something</b>: hello world", TextConverter.TEXT_FIELD_HTML_FORMAT);
var pe:ParagraphElement = tf.mxmlChildren[0];
for each (var fe:FlowElement in pe.mxmlChildren)
    some_paragraph_element.addChild(fe);

最终,您需要抓取生成的 TextFlow 中的所有对象。为简单起见,我不在这里这样做。但是您看到我仍然如何遍历生成的 TextFlow 中第一个也是唯一一个段落中的所有对象吗?

希望这会有所帮助,祝你好运。

于 2011-06-11T11:17:44.940 回答
0

另一种丑陋的做法可能是: - 将现有的 TextFlow 导出为 HTML 字符串。- 附加到另一个 HTML 字符串 - 重新导入结果

var helloWorldStr : String = "<b>something</b>: hello world";
var export : Object = TextConverter.export(textFlow,TextConverter.TEXT_FIELD_HTML_FORMAT, ConversionType.STRING_TYPE);
textFlow = TextConverter.importToFlow((export as String) + helloWorldStr, TextConverter.TEXT_FIELD_HTML_FORMAT);
于 2014-11-25T15:16:43.880 回答