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