HTML TextField AS3. HTML-форматирование текста в текстовом поле

Форматирование посредством экземпляра класса TextFormat позволяет форматировать ВЕСЬ текст в выбранном текстовом поле, но это, к сожалению, не дает возможности форматировать отдельные абзацы, предложения, слова и буквы. Для того чтобы это осуществить Вам необходимо сделать гипертекстовую разметку такого текста (HTML TextField AS3).

Текстовые поля в ActionScript 3 поддерживают небольшой набор тэгов HTML 1.0, которые Вы можете использовать внутри них. В большинстве случаев это тэги, эквивалентные по своему значению свойствам класса TextFormat.

Например, класс textFormat содержит свойство url для создания гиперссылки; в HTML ту же задачу решает тэг <a>. Кроме того, для того чтобы сделать текст жирным используется тэг <b>, наклонным – <i>, в виде списка – <li> и т.д. Для добавления картинок используют тэг <img>, перехода на новую строку – <br>, создания нового абзаца – <p>.

В большинстве случаев, атрибуты для вышеперечисленных тэгов поддерживаются в ActionScript точно также как и в HTML. Например, Для определения цвета шрифта достаточно записать следующее:

<font color="#333333">

Для того чтобы применить форматирование HTML TextField AS3 в ActionScript Вы должны добавить текст в текстовое поле с помощью свойства htmlText, а не с помощью стандартного text. Если Вы попытаетесь использовать оба свойства, то «сработает» только text.

HTML TextField AS3. HTML-форматирование текста в текстовом поле

Создайте текстовое поле

var txtInfo:TextField = new TextField();

Добавьте это поле на сцену (stage)

addChild(txtInfo);

Назначьте ширину для этого текстового поля

txtInfo.width = 200;

Задайте автоматическое определение размеров для созданного текстового поля

txtInfo.autoSize= TextFieldAutoSize.LEFT;

Если необходимо включите свойство для поддержки многострочного текста

txtInfo.multiline = true;

Декларируйте переменную с типом данных String, которая включает в себя HTML-форматирование

var info:String = "<p>Фамилия: Иванов</p><p>Должность: директор</p>";

Поместите переменную info в текстовое поле, используя свойство htmlText

txtInfo.htmlText = info;

Весь код, набранный выше, отобразится во Flash CS5 так:

HTML TextField AS3

Haжмите Ctrl + Enter.

Ролик запустится. Отформатированный текст появится на экране монитора.

Дополнительная информация

Flash Player также поддерживает специальные символы. Вы наверняка знаете, что для гипертекстовой разметки страниц используются определенные символы, такие как, например, " < " и " > ", " / " и " ! " и т.д. Нельзя, используя форматирование (HTML TextField) записать математическую формулу 6 < 10, т.к. при обработке броузером HTML-кода символ «меньше» будет принят за символ, открывающий тэг и произойдет ошибка. Вместо этого Вам нужно использовать следующую запись &lt;

Flash поддерживает следующие специальные символы:

  • &lt; – символ "меньше чем"
  • &gt; – символ "больше чем"
  • &amp; – символ "амперсанд"
  • &quot; – символ "кавычки"
  • &apos; – символ "апостроф"
  • &nbsp; – символ "неразрывный пробел"

Любые тэги языка HTML, которые не поддерживаются Flash Player'ом будут проигнорированы. Например, если Вы захотите вставить таблицу в текстовое поле и запишите следующий код

<table><tr><td>Фамилия</td></tr><tr><td>Иванов</td></tr></table>

то все тэги, которые не распознаются Flash Player'ом <table><tr><td> и их закрывающие тэги будут удалены. Из записанного останется только

Фамилия Иванов