2010-08-19 55 views
2

我正在使用actionsript 3和flex 3.5。有沒有辦法在不使用「htmlText」屬性的情況下更改TextArea控件中文本部分的字體顏色?更改TextArea中文本部分的字體顏色

例如,我有一個字符串「狗,貓,魚」。我想將「貓」字的顏色更改爲紅色。有可能嗎?

回答

4

如果你已經有一種方法來查找字符,那麼你所需要的只是TextFormatTextField類來實現這一點。 TextFormat類允許你定義一個樣式現場...

var format:TextFormat = new TextFormat(); 
format.font = "Helvectica"; 
format.size = 14; 
format.color = 0xFFCC00; 
format.leading = 2; 

然後,您可以設置格式使用的文本字段文本的一個子集...

var field:TextField = new TextField(); 
field.text = "fish cat dog rat" 
field.setTextFormat(format, 6, 12) 

...其中6是開始格式化的索引,12是結束格式的索引。

如果您無法確定格式的開始點和結束點,我建議您使用正則表達式進行調查。

+0

感謝您的響應,但有沒有什麼辦法可以在TextArea(而不是TextField)上實現? – murdoc 2010-08-19 14:40:44

+0

看起來像@Dave涵蓋了你。 – JeremyFromEarth 2010-08-19 15:43:52

+0

謝謝傑里米,謝謝戴夫。你向我展示了工作的方式 – murdoc 2010-08-20 07:51:54

2

這可能是最好的擴展TextArea,並在子類中的保護textField屬性上做你想做的。

但是您可以通過幾個步驟從TextArea中獲取textField。這裏的一些代碼,你將需要:

import mx.core.IUITextField; 
import mx.core.mx_internal; 

use namespace mx_internal; 

var tf:IUITextField = textArea.getTextField(); 

的mx_internal是需要訪問getTextField(),你必須使用的IUITextField作爲柔性封裝API元素flash.text.TextField。它具有相同的界面,因此您可以在Jeremy的答案中應用該示例。