![]() |
Проблема с внедренными шрифтами
Не вдаваясь в комментарии, хорошо или плохо внедрять шрифты - есть такая задача. Динамически создаются текстовые поля, присваивается TextFormat, ставится embedFonts - и нате, русский текст не отображается.
Вернее, отображается далеко не во всех шрифтах. В случае с Myriad Pro - и многими другими шрифтами не работает. Если проделать ту же самую операцию во flash IDE , те тупо вручную внедрить контуры шрифта в текстовое поле - все работает нормально. Кто-нибудь сталкивался с чем-то подобным? |
А как у вас внедрены шрифты?
|
Шрифты внедрены в flash IDE, в библиотеку. Затем скомпилированный файл с шрифтом при необходимости подгружается, и приложение обращается к классу шрифта, регистрирует его. Все работает, кроме русского текста. Аналогичная ситуация была и в AS 2.0. Либо это особенность непосредственно оболочки.....Насколько я понимаю, эта проблема как-то связана с кодировкой шрифта. Но даже в этом случае, странно что при непосредственном внедрении шрифта в текстовое поле проблемы нет...
|
|
Этот пост и про то что шрифт в библиотеке - зло я уже читал...Подозреваю, что не только в библиотеке, а вообще внедрять шрифты - зло...
С внедрением шрифтов в текстовое поле в flash IDE проблемы нет. Проблема именно в том что программно созданное поле с шрифтом из библиотеки не отображает русские символы. Это означает что в каждом новом проекте мне нужно вручную создавать текcтовое поле, внедрять вручную нужные шрифты, затем импортировать это как mobieClip из библиотеки и тд. вместо того чтобы поменять пару строчек в коде... |
Показывайте код тогда, что-то вы явно делаете не так.
|
Вот код, который грузит SWF с внедренным в библиотеку шрифтом.
Код:
var fontUrl:URLRequest=new URLRequest("src/fonts/MyriadProRegular.swf"); |
Мммм, а можно полный набор, fla + код?
Собирать swf-ки лень :) |
http://www.project47.ru/temp/fontLoader.rar
Это просто тест, код написан в кадре, но судя по всему погоды это не делает - подобные вещи в классах давали тот же результат... |
Я понял проблему.
Вариантов у вас два: 1) Прочитать тему «Внедрение шрифта» и отредактировать конфиг со списком зашиваемых символов через либо. Если он вообще есть; 2) Использовать FontLoader. |
Спасибо, __etc! :)
Никогда бы не подумал что такая вроде бы мелочь потребует столь изощренных решений...) В общем, шрифты в либе по любому инкапсулируются криво, единственный способ достать русские символы - это embed в текстовые поля и далее - FontLoader.... Если у кого-то аналогичная проблема - здесь довольно удобный solution на предмет быстрой конвертации шрифтов в SWF. |
Ещё, как вариант, можно использовать Flex SDK.
|
Надеюсь, со временем и до flex руки дойдут ) Сейчас пока пишу код в flashDevelop а компилирую по привычке во flash...
|
Да, во флексе вся эта процедура предельно проста...При этом, в документации шрифты внедряются тоже через текстовые поля - очевидно, опция "New Font" в flash IDE исключительно для красоты....
|
Ну не для красоты, просто недоработка.
|
Вы были правы, в flex SDK такой проблемы нет. Все внедряется корректно )
|
Во Flex с этим есть свои заморочки тоже.
1. Если используется [Embed(... .swf)] со встроенными в него шрифтами, то эти шрифты замещают собой имеющиеся в основном приложении (напр. статический текст с 5 буквами - после его эмбеда у вас останется в распоряжении 5 букв, даже если вы отдельно включили весь шрифт :) 2. Для некоторых шрифтов необходимо вручную указывать номера включаемых символов т.к. они имеют нестандартные индексы. Со всей этой хренью не так давно разбирался Филипп "FSB", совсем недавно - Vooparker. Я не совсем в курсе. |
| Часовой пояс GMT +4, время: 06:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.