Встраивание шрифтов в Adobe Flash / ActionScript 3.0 приложения

Рассмотрим алгоритм внедрения шрифтов в флеш-приложения, создаваемые в программе Adobe Flash (на примере Adobe Flash CS5.5) и использование внедрённых шрифтов при программировании на ActionScript 3.0.

Для примера я предлагаю создать текстовое поле, в котором текст будет выводится симпатичным шрифтом «A La Russ». Результат должен получиться примерно следующим:

Загрузить Adobe Flash Player

Первым делом, нам надо поместить шрифт в библиотеку нашего флеш-проекта. Для этого идём в саму библиотеку и, наведя на пустую область библиотеки, правым кликом мышки вызываем контекстное меню. В контекстном меню библиотеки выбираем пункт «Создать шрифт».

Создать шрифт

Откроется специальное окно программы «Внедрение шрифтов». В нём вы можете выбрать шрифт и настроить его перед внедрением в флеш-приложение. Если вам нужны не все символы данного шрифта, а только часть этих символов, то вы можете выбрать одну или несколько категорий символов или прописать конкретный набор необходимых символов. Таким образом, вы уменьшите размер внедрённого шрифта.

Важно понимать, что во флеш каждый стиль шрифта (полужирный, курсив) считается отдельным шрифтом и встраивать его надо тоже отдельно.

Внедрение шрифтов

Далее переходим во вкладку «ActionScript». Здесь мы должны поставить галочку у «Экспортировать для ActionScript» и указать имя класса (я дал имя своему классу «A_La_Russ»), через который мы и будем работать с внедрённым шрифтом из кода ActionScript 3.0. Обратите внимание, что по умолчанию шрифт экспортируется в первый кадр флеш-ролика (подробнее об экспорте в первый кадр смотри тут ).

Экспортировать шрифт для ActionScript

Теперь давайте с помощью языка ActionScript 3.0 создадим текстовое поле и сделаем так, чтобы содержимое этого текстового поля отображалось с помощью нашего внедрённого шрифта.

Код ActionScript 3.0:

/* Создаём специфическое форматирование текста для нашего будущего текстового поля. */ var tf:TextFormat = new TextFormat(); tf.font = new A_La_Russ().fontName; // указываем шрифт, который хотим использовать в текстовом поле tf.size = 20; // указываем размер текста /* Создаём динамическое текстовое поле. */ var txtField:TextField = new TextField(); txtField.defaultTextFormat = tf; // указываем форматирование, которое будет использоваться для данного текстового поля txtField.width = 500; // ширина текстового поля txtField.height = 350; // высота текстового поля txtField.x = 25; // положение текстового поля по оси х txtField.y = 25; // положение текстового поля по оси у txtField.embedFonts = true; // указываем, что текст должен отображаться с помощью встроенного шрифта txtField.multiline = true; // текстовое поле должно быть многострочным txtField.wordWrap = true; // разрешаем перенос по словам txtField.text = "В лето 6750. Великий князь Ярослав послал сына своего Андрея в Новгород Великий на помощь Александру против немцев. И победили немцев за Псковом на озере, и многих взяли в плен, и возвратился Андрей к своему отцу с честью."; // текст текстового поля addChild(txtField); // добавляем текстовое поле в список отображения

Для текстовых полей, у которых свойство embedFonts имеет значение true, доступна настройка типа сглаживания. Настройка типа сглаживания осуществляется с помощью свойства antiAliasType, которое может иметь одно из двух значений:

- AntiAliasType.NORMAL;

- AntiAliasType.ADVANCED.

Пример использования сглаживания:

txtField.antiAliasType = AntiAliasType.ADVANCED;

Использование сглаживания (AntiAliasType.ADVANCED) бывает очень полезным, если вы используете для текстового поля очень мелкий шрифт. В таких случаях текст становится более чётким, а, следовательно, более читабельным.

Исходник под Adobe Flash CS5.5 можно скачать здесь.

Вот так вот...

Автор: admin

Дата добавления: 2011-10-24

Просмотров: 10796

Рейтинг поста: +12-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2016-03-24
Здравствуйте. Сбросьте свой исходник на edapskov@yandex.ru
Комментатор
Комментарий добавил(а): Dima
Дата добавления: 2016-03-24
Здраствуйте! Такой вопрос, рисую кнопку, создаю из неё муви клип D1 и ставлю галку експорт в актион скрипт с именем D1, потом на первом кадре пишу код:

var D1: D1 = new D1 ();
addChild (D1);
D1.x=100;
D1.y=100;

и мне выдает ошибку Монтажный кадр 1, слой "Слой 1", кадр 1, строка 1 1046: Тип не найден или не является константой времени компиляции: D1.
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2015-06-15
Спасибо! Работает.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-06-14
> Неверно сформулировал. Не размер текстового поля, созданного программно, а размер шрифта.

Как-то так:


var txtFormat:TextFormat = new TextFormat();
txtFormat.size = 32;

var txtField:TextField = new TextField();
txtField.defaultTextFormat = txtFormat;
txtField.text = "Hello";
addChild(txtField);
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2015-06-14
Неверно сформулировал. Не размер текстового поля, созданного программно, а размер шрифта.
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2015-06-14
Подскажите, как задать размер текстового поля, если предварительно не вводить в него текст. Если поле пустое, то при вводе текста, размер остается по умолчанию.
Комментатор
Комментарий добавил(а): Exdeath
Дата добавления: 2012-09-21
http://pastila.org/flash/bystroe-vnedrenie-shriftov-embed/
Ура, заработало.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2012-09-21
Если честно, то не знаю. Но может вам стоит посмотреть в открытые исходники компонентов MinimalComps (http://www.minimalcomps.com/). Там, если не ошибаюсь, есть примеры такого встраивания шрифтов.
Комментатор
Комментарий добавил(а): Exdeath
Дата добавления: 2012-09-21
А ты случайно не знаешь как встроить шрифт, через программный код(или опции компилятора)?
Просто у меня Linux и FDT, а не адобовская IDE...
Комментатор
Комментарий добавил(а): Виталий Брагин
Дата добавления: 2012-05-16
Большое спасибо товарищи!
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 1 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика