Расширенная визуализация текста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 выполняет поиск одноименного шрифта устройства (шрифта, сохраненного на компьютере пользователя). Если в системе не удается найти требуемый шрифт или если установлена другая версия одноименного шрифта, текст может отображаться не так, как предполагалось. Чтобы пользователь видел правильный шрифт, его можно встроить в файл приложения. Встроенные шрифты имеют ряд преимуществ.
Самый серьезный недостаток встроенных шрифтов заключается в том, что они увеличивают размер файла или загружаемого файла приложения. Выбор метода встраивания файла шрифта в SWF-файл приложения зависит от среды разработки. Встроив шрифт, можно предписать объекту TextField использовать правильный встроенный шрифт.
Встраивание шрифтов во FlashИнструмент Flash Professional позволяет встраивать практически любые шрифты, установленные в системе, включая шрифты TrueType и Type 1 Postscript. Встраивать шрифты в приложения можно разными способами, включая:
Дополнительные сведения о встраивании шрифтов в приложения см. в разделе «Встроенные шрифты для динамических текстовых полей и текстовых полей ввода» в руководстве Использование Flash. Встраивание шрифтов во FlexВо Flex встраивать шрифты в приложения можно разными способами, включая:
Непосредственно встраивать в приложения 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);
}
|
|