У нас есть большой флеш-сайт, который переведен на 11 языков. У нас есть система загрузки шрифтов, при которой все символы, необходимые для отображения сайта на каждом языке, встроены во внешние SWF-файлы (таким образом, 11 SWF-файлов).
Недавнее обновление сайта требует от нас использования Text Layout Framework (TLF) для одной области отображения текста, которая, конечно, поддерживает только шрифты, встроенные в новый формат CFF. Я попытался внедрить второй экземпляр шрифта с помощью тега embedAsCFF="true"
, и после загрузки в SWF-шрифт я вижу, что этот шрифт правильно зарегистрирован, поскольку он отображается в массиве, возвращаемом Font.enumerateFonts
.
Используемый мной экземпляр TextFlow имеет следующие установленные свойства:
textFlow.fontLookup = FontLookup.EMBEDDED_CFF;
textFlow.renderingMode = RenderingMode.CFF;
textFlow.fontFamily = "HeadingFontCFF";
Однако отображаемый текст не находит встроенный шрифт. Отображается шрифтом устройства Times New Roman. Я почти уверен, что у меня установлен правильный TLF, так как, когда я помещаю тег [Embed]
в тот же класс (т. Е. Встраиваем в тот же SWF), что и мой код TLF, шрифт отображается правильно. Так что, похоже, это касается только шрифтов, загруженных во внешние SWF-файлы.
Я думаю, что эта проблема связана с перечисленным здесь: Пример использования встроенных шрифтов, загруженных во время выполнения Загруженные модули Flex 4 во время выполнения , хотя этот пост относится к сборке Flex 4, тогда как у нас чистый Flash 10 билд.