2012-04-19 4 views
0

を曲げます。例えば、私はテキストで "怠け者の犬の上を素早く茶色のキツネがジャンプする"としたい。単語「犬」は赤色に、単語「狐」は緑色になります。動的に変更テキストフロースパークは、私は動的に火花コンポーネントTextArea内のいくつかの単語の色を変更する方法

<s:TextArea textFlow="{scriptTextAreaTextFlow}" change="{doSomething(event)}" text ="A quick brown fox jumps over the lazy dog." id="tarea1"/> 

すべての変更機能のdoSomethingが呼び出されるで、彼女は単語「犬」のすべての位置や単語「狐」のすべてのポジションを見つけました。私がする必要があるのは、それらの単語の色を動的に変更することだけです。 mxではTextRangeでは簡単でした。

tr = new TextRange(tarea1, false, start, end); 
tr.color = "#00FF00" 

さて、スパークに私は言葉の犬やキツネが着色されているように、「resoultは、」生成されたHTMLコードは、TextAreaのからのテキストに基づいているのTextFlow

scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult); 

でそれを着色する方法を見つけました。問題は、チェック(および着色する)ライブ(のonChange)が行われ、すべての

scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult); 

のTextAreaアンカーが移動した後(開始)0配置するということです。私はこれを解決するために見つけた唯一の方法は、編集する前にアンカーの位置を覚えて、色付けした後にそれを設定することですが、私はより良い解決策を探しています。

助けてください...

おかげ

+0

のvar txtLayFmtでそれを解決:するTextLayoutFormat = tarea2.getFormatOfRange(ヌル、 14、 16)。 txtLayFmt.color = "#00FF00"; tarea2.setFormatOfRange(txtLayFmt、 14、 16)。 tarea2.setFocus(); } –

+0

uが私はそれを知らなかった –

+0

..代わりに答えとして、ポストのコメントあなたの問題を解決し、それはあなたのために働く場合は受け入れた場合... –

答えて

0

別のアプローチは、トラップするのonChangeことと「フォントの色=」指定を含めるようにキーワードの周りのhtmlTextを変更するには、正規表現を使用します。

関連する問題