0
如何动态更改火花组件TextArea中的某些单词颜色。例如,我想在文本中“快速的棕色狐狸跳过懒狗。”单词“狗”是红色和词“狐狸”绿色。动态更改文本流火花flex
<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"
,火花我找到了一种与TextFlow的
scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult);
上色它其中“resoult”是生成的HTML代码,基于文本区,从文本,这样的话狗和狐狸的着色。问题是,检查(和着色)都是现场做(的onChange)和每
scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult);
文本区域锚移动后位置0(开始)。我发现解决这个问题的唯一方法是在编辑之前记住锚点的位置,并在着色后设置它,但我正在寻找更好的解决方案。
请帮助...
感谢
与 变种txtLayFmt解决它:textLayoutFormat中= tarea2.getFormatOfRange(NULL, 14, 16); txtLayFmt.color =“#00FF00”; tarea2.setFormatOfRange(txtLayFmt, 14, 16); tarea2.setFocus(); } – 2012-04-19 15:06:22
如果你解决你的问题,而不是评论,张贴为答案,并接受,如果它适用于你.. – 2012-04-20 10:03:47
我不知道那... – 2012-04-20 14:00:07