Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Genm

Оценить эту запись

Использование встроенных шрифтов в 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 проекту, например, с таким кодом…

Код AS3:
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

Комментарии

Старый 31.10.2011 17:21 alatar вне форума
alatar
 
Аватар для alatar
Цитата:
Для того чтобы получить CFF надо использовать Flash CS5
Не обязательно. Метатег Embed справится и без FlashIDE.
Старый 02.11.2011 00:21 expl вне форума
expl
FlashIDE для эмбединга шрифтов использовать очень неудобно (даже если отбросить соображения по ее платности): шрифт должен быть установлен на машине пользователя! Забрал коллега исходник из репозитория, теперь у него новый квест - найти и установить на систему шрифт.

Метатег, на самом деле для редких шрифтов справляется, мы использовали цепочку "шрифтовая утилита из FlexSDK->swf->[Embed]"
Старый 02.11.2011 00:54 Котяра вне форума
Котяра
 
Аватар для Котяра
а что за "шрифтовая утилита из FlexSDK" ?
Старый 03.11.2011 23:37 expl вне форума
expl
Сборка 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
Встраивание swf-ки
Код:
[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
 

 


Часовой пояс GMT +4, время: 18:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.