![]() |
Не могу зарегистрировать шрифт
Пытаюсь сделать динамическую подгрузку шрифтов в приложение. Создаю флешку в которой создаю новый шрифт, делаю ему Linkage.
Затем в основном классе делаю загрузку этой свф"ки. Всё вроде бы ок, он спотыкаюсь при регистрации шрифта! В чём я допустил ошибку? Код AS3:
|
Код AS3:
Код AS3:
|
Из хелпа к Font:
Класс Font нельзя использовать для загрузки внешних шрифтов или для создания своего экземпляра Font. Класс Font следует использовать как абстрактный базовый класс.Из хелпа к FontAsset: FontAsset – это подкласс класса flash.text.Font, который представляет шрифты, встраиваемые в приложение Flex. |
немного не понял ваш пример. Получается если я сделаю как у вас и у меня будет допустим 100 шрифтов, то юзеру придётся сидеть и ждать пока все 100 шрифтов загрузятся? Может тогда разбить всё на маленькие swf, в каждом из которых будет по шрифту и их подгружать, а уже после подгрузки регистрировать?
|
Код AS3:
|
где то у Мука читал как можно грузить шрифты по мере их надобности.
Добавлено через 1 минуту Код AS3:
|
To GBee: не, так тоже не прокатывает - выдаёт ошибку
[Fault] exception, information=ArgumentError: Error #1508: Указано недопустимое значение для аргумента font. |
Кто то из ребят писал: делают swc-ку со шрифтами (при чем уже с набором нужных глифов), потом в проекте нужный подключают - никаких головных болей (и лишнего веса). Я это редко юзаю ибо с ИДЕ работаю, мне проще через иде - лентяй :)
|
Цитата:
Так к слову, после подключения swc Код AS3:
|
Шрифты можно использовать без регистрации. Они будут доступны в том ApplicationDomain, куда загружены. Во флекс вовсе не используется механизм Font.registerFont(), потому что после этого невозможно выгрузить swf, содержащий этот шрифт. Вместо этого ввели понятие FontContext, который поддерживают все модули, созданные во флекс. Специальный билдер в модуле выдает UITextField или какой другой компонент, содержащий текст из своего контекста (ApplicationDomain). После этого в компоненте можно использовать embed fonts.
Статья. |
| Часовой пояс GMT +4, время: 23:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.