我在寻找简单以下文本追加到现有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";
我怎样才能做到这一点,在表达新的TLF / FTE API spark.components.TextArea
组件?
我明白这一个你的痛苦。 这是我想出了解决方法:
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中的第一个也是唯一款?
希望这有助于和好运。
另一个和丑陋的方式做可能是: - 导出现有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);