Вспышка:Сглаживание символов в динамических текстовых полях без внедрения шрифтов, на японском языке.
-
13-09-2019 - |
Вопрос
Я пытаюсь добиться сглаживания динамических текстовых полей во Flash на японском сайте.Содержимое этих текстовых полей не является фиксированными данными.
У меня нет возможности встроить шрифты, так как встраивание всех символов приведет к созданию очень тяжелого SWF-файла (более 3000 КБ только для шрифтов).Это связано с тем, что в японском языке большое количество уникальных символов (буквально тысячи).
По сути, любой Flash-сайт, использующий динамические текстовые поля, сталкивается с одним и тем же выбором:
- Сохраняйте размер файла и используйте только шрифты устройства (без антиалиазии)
- Подскажите 3 МБ+ шрифт для пользователя, чтобы отображать гладкие противолиас -шрифты.
Я спросил некоторых японских друзей, и они сказали: «Shoganai!» (перевод:«ничего не поделаешь»).У кого-нибудь есть идеи?
пс:к сожалению, Silverlight тоже не вариант.
Решение
Действительно глупый «обходной путь», и я уверен, что за него проголосуют отрицательно, но поскольку flash.text.TextField наследует flash.display.DisplayObject, вы можете использовать встроенные фильтры, такие как flash.filters.Blur, чтобы размыть текст. на полпикселя по горизонтали и вертикали.
Это потребует немного больше ресурсов процессора.
РЕДАКТИРОВАТЬ: Немного поработав с CS4, я нашел идеальный способ сделать это без дополнительной нагрузки на процессор!Результат будет выглядеть 1:1 точно так же, как рендеринг «статического текста».Думаю, то же самое будет работать и под CS3, поскольку я помню аналогичный вариант.
Пока текст выделен, в свойствах выберите «Сглаживание» и выберите «Пользовательское сглаживание».Установите Толщину на 100 и Резкость на 0.Это помогло мне!
Другие советы
Есть много выполнимых вещей, но ни одна из них не может вам понравиться.
- Обновитесь до Flash 10.Проблема с несглаживанием шрифтов касается только Windows:В любом случае в Linux и MacOs шрифты устройств сглаживания корректны.Теперь, начиная с Flash 10, он работает и в Windows, но для того, чтобы он работал, вам необходимо скомпилировать его для Flash 10.Вероятно, это лучший способ, если вы можете позволить себе использовать Flash 10.
- Ограничьте количество символов, которые вы можете использовать, и встраивайте только необходимые символы.Это будет работать на любой версии Flash, но во многих случаях может оказаться непрактичным.
- Откажитесь и используйте шрифты устройства:если оба вышеперечисленных способа в вашем случае невозможны, я думаю, что это действительно случай сёганая.
Как насчет встраивания шрифтов во время выполнения?
Вы можете начать со шрифтов устройства, одновременно загружая японский шрифт в фоновом режиме.После загрузки японского шрифта вы выполняете вызов, который обновляет шрифт до загруженного и выполняет встраивание.
Ознакомьтесь со встроенной платформой GAIA, которая упрощает встраивание шрифтов во время выполнения.
для части обновления я пишу массив, в который записывает шрифт и его текстовый формат.Затем, когда шрифт загружается, он ссылается на массив, который зацикливается и обновляет все зарегистрированные в нем текстовые поля.
Кажется, получилось.
Сёганай - отброс....ганбатте до упора!@
на основе идеи ЛираНуны....
я видел один статья по тому же пути, но они тоже стремились сделать маскировку...они предложили преобразовать фрагмент ролика в растровое изображение.это также может освободить процессор, поскольку ваши фильтры будут использоваться только для первоначального рендеринга, а затем вы сможете от них избавиться.