В последних версиях Flash-плеера Adobe внес какие-то изменения в отображение системных шрифтов, в следствие которых, шрифтом по-умолчанию стал Arial (до этого был Times). Это бы еще ничего, но для системных шрифтов теперь постоянно включен режим сглаживания, из-за которого текст небольшой высоты (10-12) выглядит сильно смазанным.
Добиться приемлемой четкости шрифта через AntiAliasType.ADVANCED мне не удалось. Поэтому выход остался один — встроить шрифт в flash-приложение.
Проинспектировав «гугл» на предмет встраивания шрифтов, можно получить множество ссылок на встраивание шрифтов и абсолютно во всех это предлагается делать посредством [EMBED …]
Помучавшись некоторое время, я убедился, что в Adobe Flash этот метод не работает и директива [EMBED] им преспокойно игнорируется. Выходит, этот метод подходит для Flex-разработчиков,но никак не годится для работающих в Adobe Flash.
Однако метод встраивания шрифта в Adobe Flash достаточно прост. Шрифт нужно включить в библиотеку проекта и залинковать для использования в приложении.
- Включаем шрифт в библиотеку проекта: — открываем файл *.fla. В меню проекта нажимаем на Library, в открывшемся окне щелкаем правой кнопкой на нижнем поле и выбираем New Font.
- В открывшемся окне выбираем нужный шрифт и ставим галочку BitmapText. Обязательно нужно обратить внимание на указываемый размер встраиваемого шрифта. Дело в том, что в проект шрифт встраивается только указанного размера, и если в проекте нужно использовать шрифт в нескольких размерах, его нужно встроить с каждым из используемых размеров отдельно. После нажатия на OK шрифт появится в списке.
- Для линковки шрифта в проект: щелкаем правой кнопкой по шрифту, выбираем Linkage… и отмечаем две галочки Export for ActionScript и Export in first frame. После нажатия на OK шрифт будет доступен для использования в проекте.
Использование встроенного шрифта в проекте:
- Создаем текстовое поле TextField и устанавливаем для него embedFonts = true. Также создаем объект TextFormat через который будем устанавливать шрифт:
1 2 3 |
var Txt:TextField = new TextField(); Txt.embedFonts = true; var TFormat:TextFormat = new TextFormat(); |
- Указываем имя шрифта. Допустим мы встроили в проект шрифт Arial размера 12. Имя шрифта хранится в формате: Название+»_»+размер+»_pt_st». Соответственно:
1 |
TFormat.font = "Arial"+"_"+"12"+"pt_st"; |
- Выводим текст и устанавливаем для него формат. Директива setTextFormat должна применяться после установки самого текста:
1 2 |
Txt.text = "Этот текст выводится шрифтом Arial"; Txt.setTextFormat(TFormat); |
- После вывода текстового поля на экран, текст в нем будет отображен встроенным в проект шрифтом Arial.
- Если в приложении шрифт будет использоваться в виде жирного и курсивного начертания: необходимо еще два раза встроить тот же самый шрифт, отметив соответственно галочки «bold» и «italic».