2011-03-24 101 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; 
}