Рассмотрим алгоритм внедрения шрифтов в флеш-приложения, создаваемые в программе Adobe Flash (на примере Adobe Flash CS5.5) и использование внедрённых шрифтов при программировании на ActionScript 3.0.
Для примера я предлагаю создать текстовое поле, в котором текст будет выводится симпатичным шрифтом «A La Russ». Результат должен получиться примерно следующим:
Первым делом, нам надо поместить шрифт в библиотеку нашего флеш-проекта. Для этого идём в саму библиотеку и, наведя на пустую область библиотеки, правым кликом мышки вызываем контекстное меню. В контекстном меню библиотеки выбираем пункт «Создать шрифт».

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

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

Теперь давайте с помощью языка 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 можно скачать здесь.
Вот так вот...