在Flex 3中更改TextArea(或其他文本组件)中的选择颜色

时间:2011-05-31 02:14:57

标签: flash flex actionscript-3 flex3

这种简单的事情是否有可能无法改变。我搜索了这个,但找不到任何有用的东西。

2 个答案:

答案 0 :(得分:1)

var textFormat:TextFormat = textField.getTextFormat();

textFormat.color = 0xFFFFFF // or whatever

textField.setTextFormat(textFormat, textField.selectionBeginIndex, selectionEndIndex);

这将改变颜色,几乎可以在所选文本字段区域中改变其他任何内容。请注意,我的代码只是在我的头顶输入,所以你将不得不仔细检查拼写等,但这将有效。欲了解更多信息,请点击此处:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#setTextFormat()

就像注意一样,当你处理选择索引时,flash文本字段非常愚蠢。文本字段中的第一个和最后一个索引都读为-1。因此,如果您选择的文本从索引N到textField中的文本末尾... setTextFormat的参数将是:(textFormat,N,-1),这将引发范围错误。你需要做一些切割工作来检测这种类型的场景并解决它。一种可能的解决方案可能是检查selectionBeginIndex,然后选择selectionEndIndex,检查它们中的任何一个是否等于-1,如果是,则相应地采取行动。例如,如果selectionEndIndex为-1,那么您将要转换变量并设置为textField.length - 1,以便您可以将该变量用作第二个参数,从而避免范围错误。

答案 1 :(得分:1)

这很简单如下:

  txtareaDisplay.setStyle("focusedTextSelectionColor", 0XFF0000);
selectionChange TextArea事件中的

。试试吧。