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

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 выполняет поиск одноименного шрифта устройства (шрифта, сохраненного на компьютере пользователя). Если в системе не удается найти требуемый шрифт или если установлена другая версия одноименного шрифта, текст может отображаться не так, как предполагалось. По умолчанию для текста, выводимого на экран, используется шрифт Times Roman.

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

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

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

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

  • Для встроенных шрифтов можно использовать 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); 
}