更改文本输入控件所选文本的高亮颜色

时间:2011-03-24 13:45:29

标签: flex flex3

我有一个Flex3 TextInput控件,黑色背景上有白色文本。我想更改控件中突出显示的文本的样式,以在白色背景上使用黑色文本(或类似的东西)。我很乐意使用Flex样式做到这一点,但是我空手而归。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

前段时间我也追了这个并走到了尽头。我发现这是Flash播放器中硬编码的限制。如果有人能证明我错了,我会喜欢它,但我确信情况就是如此。正如另一张海报所指出的那样,这不再是新Spark组件的问题。

答案 1 :(得分:1)

textinput.setStyle(“unfocusedTextSelectionColor”,”#00FF00″);
textinput.setStyle(“focusedTextSelectionColor”,”#00FF00″);
textinput.setStyle(“inactiveTextSelectionColor”,”#00FF00″);

您可能需要将代码放在自定义的styleInitialized()方法中:

override public function stylesInitialized():void
{
    super.stylesInitialized();

    textinput.setStyle(“unfocusedTextSelectionColor”,”#00FF00″);
    textinput.setStyle(“focusedTextSelectionColor”,”#00FF00″);
    textinput.setStyle(“inactiveTextSelectionColor”,”#00FF00″);
};

有关设置样式的详细信息,请参阅:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/supportClasses/SkinnableTextBase.html#style:focusColor

祝你好运, 罗布

答案 2 :(得分:0)

使用Flex 3,只需更改样式即可获得所需的效果。

MXML:

<mx:TextInput
        styleName="{(whatever.isSomething() || whatever.isSomethingElse()) ? 'TextInputBlackOnWhite' : 'TextInputWhiteOnBlack'}"
        text="{whatever.value}"/>

样式:

.TextInputBlackOnWhite
{
    borderSkin: Embed(source="assets/images/TextInput_BlackOnWhite.png", scaleGridLeft="2",scaleGridTop="2",scaleGridRight="19",scaleGridBottom="19");
    color: #000000;
}

.TextInputWhiteOnBlack
{
    borderSkin: Embed(source="assets/images/TextInput_WhiteOnBlack.png", scaleGridLeft="2",scaleGridTop="2",scaleGridRight="19",scaleGridBottom="19");
    color: #FFFFFF;
}