Расширенная визуализация текста

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

ActionScript 3.0 имеет большой выбор классов в пакете flash.text, которые позволяют контролировать свойства отображаемого текста, включая встроенные шрифты, настройки сглаживания, управление альфа-каналом и другие специальные настройки. Подробное описание этих классов и свойств, включая классы CSMSettings, Font и TextRenderer, можно найти в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5.

Использование встроенных шрифтов

Если в приложении указывается определенный шрифт для экземпляра TextField, Flash Player или AIR выполняет поиск одноименного шрифта устройства (шрифта, сохраненного на компьютере пользователя). Если в системе не удается найти требуемый шрифт или если установлена другая версия одноименного шрифта, текст может отображаться не так, как предполагалось.

Чтобы пользователь видел правильный шрифт, его можно встроить в файл приложения. Встроенные шрифты имеют ряд преимуществ.

  • Символы встроенных шрифтов сглаживаются, благодаря чему их края выглядят более ровными, особенно в крупном тексте.

  • Текст, отображаемый с помощью встроенных шрифтов, можно поворачивать.

  • Текст, использующий встроенные шрифты, можно сделать прозрачным или полупрозрачным.

  • Для встроенных шрифтов можно использовать CSS-стиль kerning.

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

Выбор метода встраивания файла шрифта в SWF-файл приложения зависит от среды разработки.

Встроив шрифт, можно предписать объекту TextField использовать правильный встроенный шрифт.

  • Следует установить для свойства embedFonts экземпляра TextField значение true.

  • Следует создать объект TextFormat, назначить его свойству fontFamily имя встроенного шрифта и применить объект TextFormat к экземпляру TextField. При указания встроенного шрифта свойство fontFamily должно содержать только одно имя. Недопустимо использовать список из нескольких названий шрифтов, разделенных запятыми.

  • Если стили CSS используются для настройки шрифтов для TextFields или компонентов, следует установить в качестве значения свойства CSS font-family имя встроенного шрифта. Если требуется указать встроенный шрифт, свойство font-family должно содержать только одно имя, а не список имен.

Встраивание шрифтов во Flash

Инструмент Flash Professional позволяет встраивать практически любые шрифты, установленные в системе, включая шрифты TrueType и Type 1 Postscript.

Встраивать шрифты в приложения можно разными способами, включая:

  • настройку свойств font и style экземпляра TextField в рабочей области с последующей установкой флажка «Встроить шрифты»;

  • создание символа шрифта и ссылку на него;

  • создание и использование динамической общей библиотеки, содержащей символы встроенных шрифтов.

Дополнительные сведения о встраивании шрифтов в приложения см. в разделе «Встроенные шрифты для динамических текстовых полей и текстовых полей ввода» в руководстве Использование Flash.

Встраивание шрифтов во Flex

Во Flex встраивать шрифты в приложения можно разными способами, включая:

  • использование в сценарии тега метаданных [Embed];

  • использование объявления стиля @font-face;

  • Создайте класс для шрифта и встройте его с помощью тега [Embed].

Непосредственно встраивать в приложения Flex можно только шрифты TrueType. Шрифты других форматов, например, Type 1 Postscript, сначала можно встроить в SWF-файл с помощью инструмента Flash Professional, после чего этот SWF-файл можно использовать в приложении Flex. Дополнительные сведения об использовании встроенных шрифтов из SWF-файлов в среде Flex см. в разделе «Встраивание шрифтов из SWF-файлов» руководства Использование Flex 4.

Настройка резкости, толщины и сглаживания

Flash Player или AIR по умолчанию определяет настройки для таких элементов управления отображением текста, как резкость, толщина и сглаживание при изменении размера, цвета или фона текста. В некоторых случаях, когда текст очень мелкий или очень крупный, а также когда он отображается на одном из множества уникальных фонов, важно сохранять контроль над этими настройками. Для переопределения настроек Flash Player или AIR можно использовать класс flash.text.TextRenderer и связанные с ним классы, например, CSMSettings. Эти классы дают полный контроль над качеством визуализации текста, использующего встроенные шрифты. Дополнительные сведения о встроенных шрифтах см. в разделе Использование встроенных шрифтов.

Примечание. Свойство flash.text.TextField.antiAliasType должно иметь значение AntiAliasType.ADVANCED, чтобы можно было отрегулировать резкость, толщину или свойство gridFitType, а также использовать метод TextRenderer.setAdvancedAntiAliasingTable().

В следующем примере к отображаемому тексту применяются пользовательские свойства модуляции непрерывной обводки (CSM) и форматирование с помощью встроенного шрифта myFont. При щелчке мышью на отображаемом тексте Flash Player или Adobe AIR применяет пользовательские настройки.

var format:TextFormat = new TextFormat(); 
format.color = 0x336699; 
format.size = 48; 
format.font = "myFont"; 
 
var myText:TextField = new TextField(); 
myText.embedFonts = true; 
myText.autoSize = TextFieldAutoSize.LEFT; 
myText.antiAliasType = AntiAliasType.ADVANCED; 
myText.defaultTextFormat = format; 
myText.selectable = false; 
myText.mouseEnabled = true; 
myText.text = "Hello World"; 
addChild(myText); 
myText.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(event:Event):void 
{ 
    var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8); 
    var myAliasTable:Array = new Array(myAntiAliasSettings); 
    TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable); 
}