2011-05-16 67 views
1

我期待只需以下文本追加到现有spark.components.TextArea的文本流:将流程追加到现有的TextFlow?

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

回答

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中第一个和唯一一个段落中的所有对象?

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

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