2011-05-16 64 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);