Я использую Flash CS5 (ресурсы) и FlashDevelop (код) для моего проекта. У нас есть около 20 fla / swf, которые содержат текстовые поля. Все наши текстовые поля используют один и тот же шрифт, и шрифт специфичен для нашей компании, поэтому не будет установлен на чьи-либо компьютеры, поэтому его необходимо встраивать.
Моя конечная цель - внедрить один единственный шрифт, который используют все текстовые поля, по двум основным причинам:
- Всякий раз, когда мы добавляем больше символов в шрифт (на других языках), нам нужно добавить их только один раз, а не 20 раз
- Размер файла резко не увеличивается
Мне очень трудно этого добиться. Кажется, что все, что я пытаюсь, символы отсутствуют (только символы, введенные в текстовое свойство текстовых полей в каждом флаке, кажется, встроены).
Последнее решение, которое я пробую, - это использование Runtime Shared Libraries, так как похоже, что оно должно работать. У меня есть флаг под названием FNFont.fla. Он содержит только один объект в библиотеке, встроенный шрифт. Шрифт экспортируется в AS3, экспортируется в кадр 1 и экспортируется для совместного использования во время выполнения. URL-адрес - FNFont.swf (все SWF-файлы находятся в одной папке).
Во всех других флагах я создаю объект шрифта при внедрении шрифта. Я отмечаю Import для Runtime Sharing и даю ему то же имя класса, что и в FNFont.fla. URL является FNFont.swf. Fla (s) содержат много текстовых полей, использующих этот шрифт. Текстовые поля имеют себя как потомки других фрагментов ролика.
Когда я запускаю программу и пытаюсь загрузить мувиклип, который содержит экземпляр одного из этих текстовых полей, я получаю сообщение об ошибке:
[Fault] exception, information=ReferenceError: Error #1065: Variable FontName is not defined.
FontName - имя класса объекта Font в FNFont.fla и всех других флагах. Это не имя экземпляра текстового поля (ни имя класса), поэтому я не понимаю, как оно воспринимает его как переменную. Кто-нибудь может пролить свет на это?
Спасибо