Подобным образом, если мы используем контейнерные элементы, например
, содержимое сохраняется, однако разметка игнорируется. Например, выполнение следующего кода:
06beKTTextFie1d. htm’]Text = »
«; приведет к выводу на экран такой строки без табличного форматирования: table cell text
Однако если не закрыть тег, весь последующий текст будет считаться частью этого тега и не отобразится на экране. Например, в результате следующей операции присваивания:
o6beKTTextField. html Text = «We all know that 5 < 20. that's obvious.";
приложение Flash Player выведет:
We all know that 5
Чтобы включить символ < в разметку html текстового поля, используйте сущность <, как показано в следующей строке кода:
oObeKTTextFie7d. htmlText = «We all know that 5 <: 20. That’s obvious.»;
Приложение Flash Player выведет текст:
We all know that 5 < 20. that's obvious.
Дополнительную информацию по включению исходного HTML-кода в текстовое поле можно найти по адресу http://moock. org/asdg/technotes/sourceInHtmlField/.
Мы узнали, каким образом можно отформатировать текстовое поле с помощью класса TextFormat и разметки HTML. Теперь рассмотрим последний инструмент, предназначенный для форматирования текста, — класс Stylesheet.
Форматирование текста с помощью класса Stylesheet
Класс Stylesheet языка ActionScript применяется для форматирования текстовых полей с помощью таблиц стилей. Функциональность этого класса базируется на очень ограниченном подмножестве каскадных таблиц, описанных в рекомендации уровня 1 (CSS1) консорциума W3C.
& *t
^ I Для чтения этого раздела требуется понимание основных концепций языка CSS. Если м$ а * ВЬ| незнакомы с этим языком, перед продолжением прочитайте следующий вводный материал в язык CSS: http://www. w3.org^R/CSS21/intro. html и http://www. w3.org/MarkUp/ Guide/Style.
Однако имейте в виду, что язык ActionScript не поддерживает полный набор возможностей, рекомендованных консорциумом W3C.
Как описано в рекомендации по языку CSS консорциума W3C, таблица стилей — это набор правил, которые определяют представление документа. Каждое правило описывает стиль для определенного элемента в документе HTML или XML. Следующий код демонстрирует пример правила, которое задает шрифт красного цвета для элементов :
hi { color: #FF0000 }
Внутри данного правила селектор (hi) обозначает элемент, к которому применяется стиль. Блок объявления ({ color: #FF0000 }) содержит одно или более объявлений, описывающих стиль, который должен применяться к выбранному элементу. Каждое объявление (color: #FF0000) включает свойство стиля (color) и значение (#FF0000).
«V.
Названия селекторов не зависят от регистра символов, в отличие от имен свойств стиля.
Вот простая таблица стилей, которая содержит два правила — одно для элементов и одно для элементов :
р {
font-family: sans-serif font-size: 12рх;
}
11 {
font-family: serif font-size: 10px; margin-left: 10px;
}
В языке ActionScript 3.0 таблица стилей, подобная той, которая продемонстрирована в предыдущем коде, представляется экземпляром класса Stylesheet. С помощью методов класса Stylesheet мы можем создать новую таблицу стилей программным путем или провести синтаксический разбор существующей внешней таблицы стилей. Чтобы связать объект Stylesheet с определенным объектом TextField, мы присваиваем объект Stylesheet переменной stylesheet (которая будет рассмотрена далее) данного объекта TextField. С каждым текстовым полем может быть связан всего лишь один объект Stylesheet, что резко контрастирует с языком CSS1, позволяющим связывать с одним документом HTML или XML несколько таблиц стилей.
Конкретные свойства, доступные для использования в таблицах стилей ActionScript, перечислены в табл. 27.7. Язык ActionScript поддерживает только те свойства стилей из рекомендации консорциума W3C, которые соответствуют параметрам форматирования класса TextFormat. В сравнении с полным набором свойств, определяемых консорциумом W3C, набор свойств, поддерживаемых ActionScript, чрезвычайно ограничен.
Таблица 27.7. Поддерживаемые свойства стиля языка CSS
Название свойства стиля Описание
color Задает цвет шрифта в виде 24-битного шестнадцатеричного числа, перед которым указывается знак фунта (#). Например, красный цвет записывается как #FF0000
display Определяет, должен ли элемент быть скрыт (попе), должен ли после него добавляться автоматический разрыв строки (block) или же автоматический разрыв строки добавляться не должен (inline)
font-family Задает название шрифта устройства или встроенного шрифта
font-size Указывает размер шрифта в пикселах
font-style Задает отображение символа с использованием курсива (italic) или обычное отображение символа (normal по умолчанию)
font-weight Задает отображение символа с использованием полужирного начертания (bold) или обычное отображение символа (normal по умолчанию)
kerning Определяет, должен ли быть использован автоматический кернинг для пар символов (true) или нет (false). Это свойство является неофициальным расширением набора поддерживаемых свойств стилей, описанных в рекомендации консорциума W3C
leading Задает расстояние по вертикали между строками текста, в пикселах. Это свойство является неофициальным расширением набора поддерживаемых свойств стилей, описанных в рекомендации консорциума W3C. Сравните его со свойством line-height, описанным в рекомендации консорциума W3C
Название свойства стиля Описание
letter-spacing Задает расстояние между буквами (то есть трекинг) в пикселах
margin-left Определяет расстояние по горизонтали между левой границей текстового поля и левым краем абзаца в пикселах
margin-right Задает расстояние по горизонтали между правой границей текстового поля и правым краем абзаца в пикселах
text-align Задает выравнивание абзаца по горизонтали (left (по умолчанию), right, center или justify)
text-decoration Определяет графические элементы украшения, добавляемые к тексту. В ActionScript поддерживаемыми значениями являются underline и попе (по умолчанию)
text-indent Задает расстояние, которое обозначает смещение первой строки абзаца относительно левой границы текстового поля (аналогично переменной экземпляра indent класса TextFormat), в пикселах
Таблицы стилей могут применяться для форматирования как XML-, так и HTML-элементов. Однако среди HTML-элементов, используемых приложением Flash Player для форматирования (см. табл. 27.7), с помощью таблиц стилей могут быть отформатированы только теги, и. Другие встроенные теги (например, и ) всегда выполняют свою предопределенную задачу форматирования HTML, и его нельзя изменить с помощью таблиц стилей. Более того, теги и всегда отображаются в виде блочных элементов, даже если в соответствии с таблицей стилей они должны отображаться в виде встроенных элементов.
Чтобы добавить форматирование для различных интерактивных состояний гипертекстовой ссылки, используйте следующие селекторы псевдоклассов: a: link, a: hover и a: active. Например, следующее правило определяет, что гипертекстовые ссылки при наведении на них указателя мыши должны подчеркиваться:
a:hover { text-decoration: underline:
}
Благодаря таблицам стилей у разработчиков появляется чрезвычайно важная возможность отделять информацию о стилях от содержимого и применять одинаковое определение стиля к нескольким блокам содержимого. Тем не менее в языке ActionScript таблицы стилей имеют много ограничений, снижающих их потенциальную полезность. Перед тем как рассмотреть вопросы форматирования текста с помощью таблиц стилей, внимательно познакомимся с этими ограничениями.
Существенные ограничения таблиц стилей в языке ActionScript
Приложение Flash Player намеренно предоставляет только минимальную реализацию таблиц стилей, играющую роль интерфейса для установки параметров форматирования текстового поля. В результате поддерживаемым приложением Flash Player таблицам стилей не хватает нескольких важных возможностей, описанных в рекомендации по языку CSS консорциума W3C. Читатели, привыкшие работать
с CSS и HTML, должны помнить о следующих ограничениях приложения Flash Player.
? Все длины выражаются в пикселах. Относительная единица em не поддерживается, а пункты трактуются как пикселы.
? В любой момент времени с каждым текстовым полем можно связать всего одну таблицу стилей. Таблицы стилей приложения Flash Player не каскадируются.
? Повторное присваивание таблицы стилей текстовому полю не приводит к отображению этого поля с использованием новой таблицы стилей (в качестве обходного решения можно применять подход, описание которого приводится сразу за данным списком).
? Свойства margin-topHmargin-bottomHe поддерживаются.
? Элементы не могут произвольным образом отображаться в виде элементов списка. Значение list-item свойства display не поддерживается. Более того, форму маркеров элемента списка (то есть метки) нельзя изменять, даже для собственного элемента языка HTML.
? Приложение Flash Player поддерживает только базовые селекторы типов и селекторы классов. Все остальные множества селекторов не поддерживаются. Более того, селекторы типов и селекторы классов нельзя объединять (например, следующий селектор в приложении Flash Player недопустим: р. someCustomClass). Если таблица стилей содержит селектор потомка, вся таблица стилей будет проигнорирована и никакое форматирование применено не будет.
? Если таблица стилей присваивается текстовому полю, то текстовое содержимое этого поля не может быть изменено с помощью методов replaceText ( ), appendText ( ), replaceSelText ( ) или через пользовательский ввод.
Чтобы изменить таблицу стилей текстового поля, сначала присвойте желаемый объект Stylesheet переменной stylesheet, а затем присвойте переменную htmlText самой себе, как показано в следующем коде:
t. stylesheet = некийНовый06ъектЗЬу1еЗЬееЬ\ t. html Text = t. html Text:
Стоит отметить, что новая таблица стилей должна устанавливать все свойства стиля, которые были установлены прежней таблицей стилей. В противном случае любые неустановленные прежние значения свойств стиля будут сохранены.
Теперь, когда мы познакомились с основными возможностями и ограничениями таблиц стилей, поддерживаемых приложением Flash Player, посмотрим на них в действии. Следующие два раздела описывают, как применять таблицу стилей к текстовому полю, сначала с использованием таблицы стилей, создаваемой программным путем, а затем с помощью таблицы стилей, загружаемой из внешнего CSS-файла.
Форматирование текста с помощью таблицы стилей, создаваемой программным путем
Чтобы отформатировать текст с помощью таблицы стилей, создаваемой программным путем, используйте следующую обобщенную последовательность действий.
1. Создайте один или несколько базовых блоков, представляющих блоки объявления правил.
2. Создайте объект Stylesheet.
|