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

Вернуться   Форум Flasher.ru > Блоги > Межпланетье - заметки на полях

Мысли, возникающие в процессе работы над проектом "Межпланетье".
Оценить эту запись

Встраивание шрифта в Adobe Flash CS3

Запись от Korchy размещена 24.08.2012 в 12:17
Обновил(-а) Korchy 24.08.2012 в 22:10

В последних версиях Flash-плеера Adobe внес какие-то изменения в отображение системных шрифтов, в следствие которых, шрифтом по-умолчанию стал Arial (до этого был Times). Это бы еще ничего, но для системных шрифтов теперь постоянно включен режим сглаживания, из-за которого текст небольшой высоты (10-12) выглядит сильно смазанным.
Добиться приемлемой четкости шрифта через AntiAliasType.ADVANCED мне не удалось. Поэтому выход остался один - встроить шрифт в flash-приложение.
Проинспектировав "гугл" на предмет встраивания шрифтов, можно получить множество ссылок на встраивание шрифтов и абсолютно во всех это предлагается делать посредством [EMBED ...]
Помучавшись некоторое время, я убедился, что в Adobe Flash этот метод не работает и директива [EMBED] им преспокойно игнорируется. Выходит, этот метод подходит для Flex-разработчиков,но никак не годится для работающих в Adobe Flash.

Метод встраивания шрифта в Adobe Flash достаточно прост. Шрифт нужно включить в библиотеку проекта и залинковать для использования в приложении.

1. Включаем шрифт в библиотеку проекта: - открываем файл *.fla. В меню проекта нажимаем на Library, в открывшемся окне щелкаем правой кнопкой на нижнем поле и выбираем New Font.



2. В открывшемся окне выбираем нужный шрифт и ставим галочку BitmapText. Обязательно нужно обратить внимание на указываемый размер встраиваемого шрифта. Дело в том, что в проект шрифт встраивается только указанного размера, и если в проекте нужно использовать шрифт в нескольких размерах, его нужно встроить с каждым из используемых размеров отдельно. После нажатия на OK шрифт появится в списке.

3. Для линковки шрифта в проект: щелкаем правой кнопкой по шрифту, выбираем Linkage... и отмечаем две галочки Export for ActionScript и Export in first frame. После нажатия на OK шрифт будет доступен для использования в проекте.

Использование встроенного шрифта в проекте.

1. Создаем текстовое поле TextField и устанавливаем для него embedFonts = true. Также создаем объект TextFormat через который будем устанавливать шрифт:

Код AS3:
var Txt:TextField = new TextField();
Txt.embedFonts = true;
var TFormat:TextFormat = new TextFormat();
2. Указываем имя шрифта. Допустим мы встроили в проект шрифт Arial размера 12. Имя шрифта хранится в формате: Название+"_"+размер+"_pt_st". Соответственно:

Код AS3:
TFormat.font = "Arial"+"_"+"12"+"pt_st";
3. Выводим текст и устанавливаем для него формат. Директива setTextFormat должна применяться после установки самого текста:

Код AS3:
Txt.text = "Этот текст выводится шрифтом Arial";
Txt.setTextFormat(TFormat);
4. После вывода текстового поля на экран, текст в нем будет отображен встроенным в проект шрифтом Arial.
Всего комментариев 11

Комментарии

Старый 24.08.2012 21:32 samana вне форума
samana
 
Аватар для samana
Если я верно вижу, то у вас установлена третья версия (CS3), по этому теги EMBED и не работают, потому что такая возможность появилась кажется только с пятой версии.
Старый 24.08.2012 22:09 Korchy вне форума
Korchy
 
Аватар для Korchy
>Если я верно вижу, то у вас установлена третья версия (CS3), по этому теги EMBED и не работают, потому что такая возможность появилась кажется только с пятой версии.

Да, у меня "трешка". Но это не отменяет необходимости встраивать шрифты, а вменяемое объяснение, как это сделать для CS3, найти в инете сложно
Старый 25.08.2012 22:27 Dub4ek вне форума
Dub4ek
 
Аватар для Dub4ek
Такой тип встраивания бесполезен для шрифтов, которые нужно будет эмбедить и нужно будет использование жирного шрифта или наклонного. Да и вообще так делали для проектов на 2-м скрипте. Я на сцену клал текстовое поле (динамическое) и выставлял у этого тектового поля нужный шрифт, рядом еще несколько текстовых полей со шрифтами для bold и italic. На самом деле со сменой версии IDE не нужно будет так танцевать с бубном, в последних версиях сделали человеческий механизм эмбеда шрифтов.
Старый 25.08.2012 23:44 fish_r вне форума
fish_r
 
Аватар для fish_r
Цитата:
тектового поля нужный шрифт, рядом еще несколько текстовых полей со шрифтами для bold и italic
можно и в одном поле всё собрать...

Но и сейчас есть смысл так делать потому, что в иде можно выставить Antialias for readability, и получается менее размытый шрифт, программного аналога этой настройки нет.
Старый 26.08.2012 07:28 Korchy вне форума
Korchy
 
Аватар для Korchy
>Такой тип встраивания бесполезен для шрифтов, которые нужно будет эмбедить и нужно будет использование жирного шрифта или наклонного.

Почему это? Просто для использования жирного или наклонного начертания нужно тот же самый шрифт встроить еще раз, отметив соответственно галочки bold или italic. И все, в TextField - htmlText можно использовать теги <b> или <i>.
Старый 26.08.2012 07:32 Korchy вне форума
Korchy
 
Аватар для Korchy
>На самом деле со сменой версии IDE не нужно будет так танцевать с бубном, в последних версиях сделали человеческий механизм эмбеда шрифтов.

Я не отрицаю достоинств [EMBED], там, где он есть. Но как быть там, где его нет? Не все могут перейти на новую версию среды разработки, обычно пользуются тем, на что есть лицензия.
Старый 27.08.2012 12:57 Hidest вне форума
Hidest
 
Аватар для Hidest
Больше всего такой способ нужен при использовании сглаживания Bitmap text, чтобы среда отхинтовала "пиксельный" шрифт. Тема поднималась на форуме.
Старый 27.08.2012 14:35 Korchy вне форума
Korchy
 
Аватар для Korchy
Мне пришлось встраивать шрифт наоборот, чтобы он не сглаживался, а оставался четким.
Старый 08.09.2012 18:16 trick dexter вне форума
trick dexter
 
Аватар для trick dexter
в cs4 Embed работает
Старый 10.09.2012 11:39 Korchy вне форума
Korchy
 
Аватар для Korchy
> в cs4 Embed работает

Я добавил в заголовок, что это для CS3. Не у всех есть возможность перейти на более высокую версию.
Старый 22.09.2012 01:18 Котяра вне форума
Котяра
 
Аватар для Котяра
эмбед работает в бесплатном flexSDK
 

 


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


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