изменить цвет шрифта части текста в TextArea - PullRequest
2 голосов
/ 19 августа 2010

Я использую Actionscript 3 и Flex 3.5.Есть ли способ изменить цвет шрифта части текста в элементе управления TextArea, не используя свойство "htmlText"?

Например, у меня есть строка "собака, кошка, рыба".Я хочу изменить цвет слова "кошка" на красный.Можно ли это сделать?

Ответы [ 2 ]

4 голосов
/ 19 августа 2010

Если у вас уже есть способ найти символы, то все, что вам нужно, это классы TextFormat и TextField , чтобы добиться этого. Класс TextFormat позволяет вам определить стиль для поля ...

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

Затем вы можете установить это форматирование для подмножества текста в TextField, используя ...

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

... где 6 - индекс, с которого начинается форматирование, а 12 - индекс, с которого начинается его.

Если у вас нет способа определить начальную и конечную точки форматирования, я бы посоветовал изучить использование регулярных выражений.

2 голосов
/ 19 августа 2010

Вероятно, лучше расширить TextArea и сделать то, что вы хотите, в защищенном свойстве textField внутри подкласса.

Но есть несколько шагов, которые вы можете предпринять, чтобы получить textField из TextArea.Вот некоторый код, который вам понадобится:

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

use namespace mx_internal;

var tf:IUITextField = textArea.getTextField();

mx_internal необходим для доступа к getTextField (), и вы должны использовать IUITextField в качестве flex-оболочки flash.text.TextField.У него такой же интерфейс и многое другое, поэтому вы можете применить пример в ответе Джереми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...