Шрифты во время выполнения не играют хорошо со шрифтами, встроенными в статический текст? - PullRequest
1 голос
/ 11 июля 2010

Любопытно, если у кого-то есть такая проблема:

  • Я сохраняю свои (встроенные) шрифты во внешнем файле (fonts.swf), который загружается во время выполнения.Довольно стандартно.
  • Я также использую множество графических элементов пользовательского интерфейса, созданных в Flash IDE.Некоторые из этих иллюстраций содержат static текстовые поля (таким образом, неправильные текстовые поля, которые могут измениться. Просто замороженные глифы).

Вот проблема: если я использую тот же шрифт в любом статическом текстовом поле, а затем вставлятьтот же шрифт в моей коллекции шрифтов времени выполнения, шрифт времени выполнения откажется отрисовать.Это тот же эффект, который вы получаете, если вы установите текстовое поле с embeddedFonts=true для использования шрифта, который не внедрен.Если я изменю статические текстовые поля, чтобы использовать другой шрифт, шрифты времени выполнения будут работать очень хорошо.

Примечание. Это кажется проблемой только в том случае, если встроенные шрифты загружаются во время выполнения.Если они объединены в основной файл .SWF, то проблем нет.

Из моего (очень ограниченного) понимания статических текстовых полей они автоматически встраивают шрифт, который им задан, но только минимально необходимое количество символов.Таким образом, они встраивают частичное определение.Я подозреваю, что когда я пытаюсь загрузить один и тот же шрифт во время выполнения (и опубликовать его через Font.registerFont), Flash обнаруживает уже существующий встроенный шрифт с тем же именем и молча терпит неудачу.Но я действительно не знаю.Есть ли способ обойти эту проблему?Я хочу сохранить типографскую согласованность между моими динамическими и статическими текстовыми полями, но это кажется невозможным ...

Ответы [ 2 ]

1 голос
/ 11 июля 2010

Adobe действительно нужно сделать шрифты проще.Мне снились кошмары со шрифтами и текстовыми полями.Одно время я пытался полностью понять их, но с тех пор они полностью меня утомили.Теперь вместо того, чтобы пытаться понять их, я просто концентрируюсь на том, чтобы заставить их работать.

Когда я сталкиваюсь с проблемой, я переделываю все свои шрифты с нуля.Я уверен, что 1) они все встроены с помощью тегов CSS и @Embed в код (я не доверяю Flash IDE для шрифтов) и 2) у меня есть экземпляр шрифта на сцене.Извините, это не настоящее «решение», но всякий раз, когда я выполняю эти шаги, шрифты снова работают.

Затем я скрещиваю пальцы и молюсь, чтобы они не сломались.Когда это неизбежно, я начинаю проклинать имя Adobe хуже, чем Стив Джобс, и начинаю все сначала.lol.

Со времени моего последнего исправления шрифты в нашем проекте долгое время не ломались.Большинство ошибок были связаны с жирными версиями шрифтов.Чтобы упростить вещи, я просто избегаю использования жирным шрифтом.

1 голос
/ 11 июля 2010

Я знаю, что это было невозможно с Flash 8 и ниже. Я не думаю, что вы можете сделать это, я даже спросил Macromedia в те дни, если они могли сделать это, и это было НЕТ

Проверьте документацию, я понял, что это невозможно сделать. Может быть, я слишком стар.

...