如何动态更改 spark 组件 TextArea 中的某些单词颜色。例如,我想要文本“一只敏捷的棕色狐狸跳过懒狗”。单词“dog”是红色,单词“fox”是绿色。
<s:TextArea textFlow="{scriptTextAreaTextFlow}" change="{doSomething(event)}" text ="A quick brown fox jumps over the lazy dog." id="tarea1"/>
在每次调用改变函数 doSomething 时,她找到单词“dog”的每个位置和单词“fox”的每个位置。我需要做的就是动态改变这些单词的颜色。在 mx 中,使用 TextRange 很容易。
tr = new TextRange(tarea1, false, start, end);
tr.color = "#00FF00"
现在,在火花中,我找到了一种使用 TextFlow 为其着色的方法
scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult);
其中“resoult”是根据 TextArea 中的文本生成的 HTML 代码,因此 dog 和 fox 是彩色的。问题是检查(和着色)是实时完成的(onChange),并且在每次
scriptTextAreaTextFlow = TextFlowUtil.importFromString(resoult);
TextArea 锚点移动到位置 0(开始)。我发现解决这个问题的唯一方法是在编辑之前记住锚点位置并在着色后设置它,但我正在寻找更好的解决方案。
请帮忙...
谢谢