Использование встроенных шрифтов в FTE (Flash Text Engine)
Запись от Genm размещена 30.10.2011 в 17:37
Для использования встроенного шрифта надо чтобы свойство fontLookup объекта FontDescription было равно EMBEDDED_CFF.
Использовать можно только компактные встроенные шрифты CFF (Compact Font Format). Если будет какой-то другой формат, то шрифт станет по-умолчанию (_serif).
Для того чтобы получить CFF надо использовать Flash CS5.
1. Открываем его и в меню выбираем пункты:
Текст >> Внедрение шрифтов…
2. Пишем Имя, которые Вы будете затем использовать при обращении к шрифту.
3. Выбираем Cемейство шрифта.
4. Ставим галочку в Диапазоне символов, ставьте напротив Все, если не знаете, что Вам в дальнейшем пригодиться.
5. После этого щелкаем на плюсик, чтобы добавить новый шрифт в левый список. Выделяем новый шрифт и переходим во вторую вкладку.
6. На второй вкладке Actioscript. В нижней группе настроек ставьте галочки напротив пунктов
Экспорт в Actionscript и Экспортировать в 1 кадр
7. Автоматически заполнятся текстовые блоки Класс именем вашего класса и Базовый класс будет flash.text.Font.
8. После этого активизируется верхняя группа настроек Формат контура. Там выбираем обязательно пункт TLF (DF4)
9. Жмем ОК и видим, что появился наш шрифт в библиотеке
10. Публикуем файл с экспортированием SWC- файла, который подключаем к FD проекту, например, с таким кодом…
package { import flash.display.*; import flash.text.*; import flash.text.engine.*; public class embedFontFTE extends Sprite{ public function embedFontFTE() { //Новый шрифт из myFont, который мы создали в CS5 var newMyFont:Font = new myFont as Font; //Фонт var fontDescription:FontDescription = new FontDescription(); //Обязательные параметры fontDescription.fontName = newMyFont.fontName fontDescription.fontLookup = FontLookup.EMBEDDED_CFF //Форматирование var format:ElementFormat = new ElementFormat(fontDescription, 24); //Текстовый элемент var textElement:TextElement = new TextElement("Пример текста", format); //Текстовый блок var textBlock:TextBlock = new TextBlock(); //Передаем в блок элемент textBlock.content = textElement; //Создаем линию текста var textLine:TextLine = textBlock.createTextLine (); //Задаем расположение линии textLine.x = 0 textLine.y = textLine.height //Добавляем текст на сцену this.addChild(textLine); } }}
Всего комментариев 4
Комментарии
![]() ![]() |
|
Цитата:
Для того чтобы получить CFF надо использовать Flash CS5
|
![]() ![]() |
|
а что за "шрифтовая утилита из FlexSDK" ?
|
![]() ![]() |
|
Сборка swf-ок(например, в батнике, адепты ant, возможно смогут и через него сделать)
Код:
"c:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.0.0\bin\fontswf" -3 -o some_font.swf some_font.TTF "c:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.0.0\bin\fontswf" -4 -o some_font_fte.swf some_font.TTF Код:
[Embed(source='some_font.swf', fontFamily='SomeFont')] private static var _someFont:Class; [Embed(source='some_fong_fte.swf', fontFamily='SomeFont')] private static var _someFontFTE:Class; // Имя будет одинаковым для обоих встроенных шривтов public static const SOME_FONT:String = Font(new _someFont()).fontName; Ну, чаще всего шрифт ведь нужен и для FTE и для обычного TextField в одном и том же приложении. |
|
Обновил(-а) expl 03.11.2011 в 23:39
|
Последние записи от Genm