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