我正在使用actionsript 3和flex 3.5。有沒有辦法在不使用「htmlText」屬性的情況下更改TextArea控件中文本部分的字體顏色?更改TextArea中文本部分的字體顏色
例如,我有一個字符串「狗,貓,魚」。我想將「貓」字的顏色更改爲紅色。有可能嗎?
我正在使用actionsript 3和flex 3.5。有沒有辦法在不使用「htmlText」屬性的情況下更改TextArea控件中文本部分的字體顏色?更改TextArea中文本部分的字體顏色
例如,我有一個字符串「狗,貓,魚」。我想將「貓」字的顏色更改爲紅色。有可能嗎?
如果你已經有一種方法來查找字符,那麼你所需要的只是TextFormat和TextField類來實現這一點。 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是結束格式的索引。
如果您無法確定格式的開始點和結束點,我建議您使用正則表達式進行調查。
這可能是最好的擴展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的答案中應用該示例。
感謝您的響應,但有沒有什麼辦法可以在TextArea(而不是TextField)上實現? – murdoc 2010-08-19 14:40:44
看起來像@Dave涵蓋了你。 – JeremyFromEarth 2010-08-19 15:43:52
謝謝傑里米,謝謝戴夫。你向我展示了工作的方式 – murdoc 2010-08-20 07:51:54