我有一个名为labels的TextArea组件,它将由名为labelsArray的数组中的字符串填充。
labelsArray内容示例:
private var labelsArray:Array = new Array( "apple", "*banana", "carrot" );
最初,我用这句话填充标签:
labels.text = labelsArray.join( "\n" );
如果字符串前面带有星号(*) - 与示例内容中的“banana”一样 - 该字符串需要使用不同的颜色并用方括号[]括起来。星号本身不会显示。
我无法找到应用于字符串的任何格式。
我发现了使用setTextFormat应用于TextField对象的TextFormat类。
我还发现了要使用setFormatOfRange应用于TextArea对象的TextLayoutFormat类。不幸的是,我没有根据setFormatOfRange的参数给出解释:
setFormatOfRange(format,anchorPosition,activePosition) anchorPosition - 相对于文本字符串开头的字符位置,指定使用箭头键扩展选择时保持固定的选择的结尾。 activePosition - 相对于文本字符串开头的字符位置,指定使用箭头键扩展选择时移动的选择的结束。
我不明白从“...指定结束......”开始到最后。我不明白箭头键如何与文本格式化有关。
有什么比这更简单的东西吗?我希望循环使用labelsArray并在每个String上应用格式化,然后将其连接/附加到labels.text。
感谢您的帮助! 邦尼
答案 0 :(得分:1)
一种方法是使用htmlText属性。
myTextArea.htmlText = "<font color="red" size="12">String1</font>,
<font color="green" size="11">String2</font>";