Текстовые поля могут содержать неформатированный текст или текст в формате HTML. Неформатированный текст сохраняется в свойстве
text
экземпляра, а HTML-текст — в свойстве
htmlText
.
С помощью объявлений CSS-стилей можно определить стили текста, применяемые ко многим другим текстовым полям. Объявления CSS-стилей можно создать в коде приложения или загрузить во время выполнения из внешнего CSS-файла.
Класс flash.text.StyleSheet обрабатывает CSS-стили. Класс StyleSheet распознает ограниченный набор свойств CSS. Подробный список свойств стиля, поддерживаемых классом StyleSheet, см. в описании flash.textStylesheet в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5.
Как показано в следующем примере, CSS-стили можно создать в коде и применить их к HTML-тексту с помощью объекта StyleSheet.
var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();
styleObj.fontSize = "bold";
styleObj.color = "#FF0000";
style.setStyle(".darkRed", styleObj);
var tf:TextField = new TextField();
tf.styleSheet = style;
tf.htmlText = "<span class = 'darkRed'>Red</span> apple";
addChild(tf);
После создания объекта StyleSheet пример кода создает простой объект для хранения набора свойств, объявляющих стиль. Затем вызывается метод
StyleSheet.setStyle()
, который добавляет в таблицу стилей новый стиль с именем «.darkred». После этого форматирование таблицы стилей применяется путем назначения объекта StyleSheet свойству TextField
styleSheet
.
Чтобы CSS-стили вступили в силу, таблицу стилей необходимо применить к объекту TextField до того, как будет задано свойство
htmlText
.
Текстовое поле с таблицей стилей не подлежит редактированию. Если применить таблицу стилей к существующему текстовому полю ввода, оно отображает свойства таблицы стилей, но не позволяет пользователям вводить новый текст. Кроме того, если текстовому полю присвоена таблица стилей, для него нельзя использовать следующие API-интерфейсы ActionScript:
-
Метод
TextField.replaceText()
-
Метод
TextField.replaceSelectedText()
-
Свойство
TextField.defaultTextFormat
-
Метод
TextField.setTextFormat()
Если текстовому полю присвоена таблица стилей, но впоследствии свойство
TextField.styleSheet
устанавливается на значение
null
, содержимое свойств
TextField.text
и
TextField.htmlText
добавляет для содержимого теги и атрибуты, чтобы включить форматирование из назначенной ранее таблицы стилей. Для сохранения исходного свойства
htmlText
следует сохранить его в переменной перед установкой таблицы стилей на значение
null
.