2011-03-24 100 views
1

我有一个Flex3 TextInput控件,黑色背景上有白色文本。我想改变控件中突出显示文本的样式,在白色背景上使用黑色文本(或类似的东西)。我很乐意使用Flex风格来做到这一点,但是我正在空手而归。有任何想法吗?更改TextInput控件的选定文本的高亮颜色

回答

3

前段时间我也追赶过这一切,并走到了死胡同。我发现这是Flash播放器中硬编码的限制。如果有人能证明我错了,我很乐意,但我相信这是事实。正如其他海报所指出的,这对于新的Spark组件来说不再是问题。

+0

多么不幸。我正在开发的项目将在未来某个时间升级到Flex 4,我们的客户将不得不等待。 – Clavicle 2011-03-24 17:14:15

+0

我听到你的声音。这也是我的一个很大的挫折来源。当时我正在研究一个非常黑暗的主题的应用程序,这使得突出显示无法看到。 – 2011-03-24 20:49:31

+0

@WadeMueller,你说这不是新的Spark组件的问题。你的意思是,改变荧光笔颜色不是问题吗?或在荧光笔下的文字颜色?我拼命寻找第二个问题的答案。我想让我的文字改变颜色,同时突出显示。 Spark组件似乎是不可能的事件。我对吗? – 2012-12-04 02:33:57

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

祝你好运, 罗布

+0

嗨,罗布,感谢您的答复。不幸的是,我坚持使用Flex 3 TextInput,并且您提到的样式仅在Flex 4 spark实现中可用。 – Clavicle 2011-03-24 16:12:36

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; 
}