Март 2011
Руководство по actionscript. часть 5, стр. 095
Var regularFormat:TextFormat = new TextFormat( );
regularFormat. bold = false;
t. setTextFormat(regularFormat,
t. textлndex0f(«This isn’t bold.»),
t. length);
Подобный подход, применяемый для форматирования добавляемого пользователем текста, продемонстрирован далее, в разд. «Ввод через текстовые поля».
Хотя формат текста по умолчанию в основном является внутренним инструментом среды Flash, разработчики могут использовать его для решения одной важной задачи: устанавливать форматирование пустого текстового поля. Формат для пустого объекта TextField указывается путем присваивания объекта TextFormat переменной def aultTextFormat объекта TextField, как показано в следующем коде:
// Создаем текстовое поле
var t:TextField = new TextField( );
t. width = 300;
// Создаем объект TextFormat
var defaultFormat:TextFormat = new TextFormatC );
defaultFormat. size = 20;
defaultFormat. color = OxFFOOOO;
defaultFormat. font = «Verdana»;
// Присваиваем объект TextFormat переменной defaultTextFormat объекта t t. defaultTextFormat = defaultFormat;
Как только переменной def aultTextFormat пустого объекта TextField будет присвоено значение, весь текст, добавляемый в данное поле (либо программным путем, либо через пользовательский ввод), будет отформатирован в соответствии с указанным значением переменной def aultTextFormat до тех пор, пока к символам в текстовом поле не будет применено новое пользовательское форматирование. Например, следующий код добавляет новый текст в объект t; текст автоматически форматируется с использованием шрифта Verdana размером 20 пунктов красного цвета (в соответствии со значением переменной t. def aultTextFormat):
Когда к символам в текстовом поле будет применено пользовательское форматирование, новый текст, добавляемый в поле, будет отформатирован в соответствии с форматом текста в месте вставки.
Руководство по actionscript. часть 5, стр. 096
Теперь, когда мы познакомились с основами форматирования текста с помощью класса TextFormat, перейдем к форматированию текста с помощью разметки HTML.
HTML-форматирование текста
Чтобы применить форматирование к текстовому полю с помощью разметки HTML, используется следующая базовая последовательность действий.
1. Создать объект TextField.
2. Создать строку текста, представляющую разметку HTML, с использованием ограниченного набора HTML-тегов форматирования, поддерживаемых языком ActionScript.
3. Присвоить текст, отформатированный с помощью разметки HTML, переменной htmlText объекта TextField. Любой текст, отформатированный с помощью разметки HTML и присвоенный переменной htmlText, выводится на экран в виде отформатированного текста.
Применим перечисленные шаги на примере. Наша цель — отформатировать весь текст в поле, используя шрифт Arial размером 20 пунктов с полужирным начертанием (как мы делали это ранее с помощью объекта TextFormat).
Начнем с создания текстового поля, которое будет автоматически изменять свои размеры, чтобы соответствовать нашему отформатированному тексту:
var t:TextField = new TextField( ); t. autoSize = TextFieldAutoSize. LEFT;
Затем мы создадим нашу отформатированную текстовую строку, используя теги и :
var message:String = «»
+ «ActionScript is fun!«;
Наконец, присваиваем строку, содержащую разметку HTML, переменной htmlText объекта t:
t. html Text = message; Результат показан на рис. 27.11.
Руководство по actionscript. часть 5, стр. 097
ActionScript is fun! Рис. 27.11. Текст, отформатированный с помощью разметки HTML
Зачастую текст, содержащий разметку HTML, присваивается непосредственно переменной htmlText, как показано в следующем коде:
t. htmlText = «»
+ «ActionScript is fun!«;
С помощью HTML-разметки мы можем применять любые параметры форматирования, доступные в классе TextFormat. В табл. 27.5 перечислены поддерживаемые
языком ActionScript теги и атрибуты HTML, дополненные перекрестными ссылками на эквивалентные переменные класса TextFormat. Дополнительную информацию по поддержке HTML в языке ActionScript можно найти в разделе, посвященном описанию переменной экземпляра htmlText класса TextField, справочника по языку ActionScript корпорации Adobe.
В отличие от автономной версии приложения Flash Player и версии, реализованной в виде модуля расширения браузера, приложение Adobe AIR включает полнофункциональные синтаксический анализатор и подсистему визуализации разметки HTML, которые способны обрабатывать весь диапазон инструкций языка HTML, таблиц стилей CSS и языка JavaScript, обычно применяемых в браузерах.
Обратите внимание, что, когда таблицы стилей не используются, приложение Flash Player автоматически добавляет разметку HTML к строковому значению переменной htmlText, если HTML-код, присвоенный переменной htmlText, не полностью описывает форматирование текстового поля. Например, следующий код присваивает переменной htmlText текст, не содержащий теги или :
var t:TextField = new TextField( );
t. htmlText = «This field contains HTML!«;
Прочитав значение переменной t. htmlText, мы обнаружим, что были добавлены теги и :
trace(t. htmlText); // Выводит:
This field contains HTML!
Теперь рассмотрим набор тегов и атрибутов языка HTML, поддерживаемых языком ActionScript, которые представлены в табл. 27.5.
Руководство по actionscript. часть 5, стр. 098
Таблица 27.5. Теги языка HTML, поддерживаемые языком ActionScript
Тег Описание Атрибуты Описание Эквивалентная переменная экземпляра класса TextFormat
1 2 3 4 5
Определяет гипертекстовую ссылку HREF Задает цель гипертекстовой ссылки url
TARGET Определяет окно или фрейм гипертекстовой ссылки target
Задает отображение символа с использованием полужирного начертания Отсутствует bold
Вызывает разрыв строки в теле текста; функционально эквивалентен служебной последовательности \п Отсутствует Отсутствует
1 2 3 4 5
Определяет информацию о шрифте FACE Определяет название шрифта font
SIZE Задает размер шрифта, в пунктах size
COLOR Определяет цвет шрифта в виде 24-битного целого шестнадцатерично-го числа, которому предшествует знак фунта (#). Например, красный цвет записывается как #FF0000 color
KERNING Указывает, нужно ли использовать кернинг для пар символов (1 означает «использовать», 0 — «не использовать») kerning
LETTERSPACING Определяет расстояние между буквами (то есть тре-кинг), в пикселах letterSpacing
Задает отображение символа с использованием курсива Отсутствует italic
WIDTH Необязательная ширина вставляемого элемента Отсутствует
HEIGHT Необязательная высота вставляемого элемента Отсутствует
ALIGN Необязательное выравнивание вставляемого элемента по горизонтали Отсутствует
HSPACE ‘ Необязательное пространство по горизонтали, окружающее вставляемый элемент Отсутствует
VSPACE Необязательное пространство по вертикали, окружающее вставляемый элемент Отсутствует
Таблица 27.5 (продолжение)
1 2 3 4 5
ID • Определяет необязательный идентификатор, по которому можно обращаться к вставляемому элементу через метод экземпляра getlmage-Reference() класса TextField Отсутствует
CHECKPOLICYFILE Указывает, требуется ли проверка файла политики безопасности перед обращением к элементу в виде данных (см. гл. 19) Отсутствует
Определяет абзац, перед которым отображается маркер. Стоит отметить, что изменить форму маркера невозможно, а теги
- или не требуются Отсутствует bullet
Определяет абзац ALIGN Определяет выравнивание абзаца по горизонтали (по левому, правому краю, по центру или по ширине) align
CLASS Определяет класс CSS, применяется вместе с таблицами стилей Отсутствует
Помечает произвольный фрагмент текста, который может быть отформатирован с помощью таблицы стилей CLASS Определяет класс CSS, применяется вместе с таблицами стилей Отсутствует
Определяет форматирующую информацию для фрагмента текста LEFTMARGIN Определяет расстояние по горизонтали в пикселах между левой границей текстового поля и левым краем абзаца leftMargin
RIGHTMARGIN Задает расстояние по горизонтали в пикселах между правой границей текстового поля и правым краем абзаца rightMargin
1 2 3 4 5
BLOCKINDENT Определяет расстояние в пикселах, на которое смещается абзац относительно левой границы текстового поля blocklndent
INDENT Определяет расстояние в пикселах, на которое смещается первая строка относительно левой границы текстового поля. indent
LEADING Определяет величину промежутка по вертикали в пикселах между строками текста leading
TABSTOPS Определяет шаги табуляции по горизонтали, в пикселах tabStops
Задает отображение символа с использованием подчеркивания Отсутствует underline
Вообще говоря, использование тегов языка HTML, перечисленных в табл. 27.5, в ActionScript аналогично их использованию в распространенных браузерах. С другой стороны, между использованием HTML в ActionScript и использованием HTML в браузерах существует несколько существенных отличий.
Руководство по actionscript. часть 5, стр. 099
? Тег
, содержимое сохраняется, однако разметка игнорируется. Например, выполнение следующего кода: 06beKTTextFie1d. htm’]Text = »
«; приведет к выводу на экран такой строки без табличного форматирования: table cell text Руководство по actionscript. часть 5, стр. 104Мы узнали, каким образом можно отформатировать текстовое поле с помощью класса TextFormat и разметки HTML. Теперь рассмотрим последний инструмент, предназначенный для форматирования текста, — класс Stylesheet. |