Вспышка:Сглаживание символов в динамических текстовых полях без внедрения шрифтов, на японском языке.

StackOverflow https://stackoverflow.com/questions/776216

Вопрос

Я пытаюсь добиться сглаживания динамических текстовых полей во Flash на японском сайте.Содержимое этих текстовых полей не является фиксированными данными.

У меня нет возможности встроить шрифты, так как встраивание всех символов приведет к созданию очень тяжелого SWF-файла (более 3000 КБ только для шрифтов).Это связано с тем, что в японском языке большое количество уникальных символов (буквально тысячи).

По сути, любой Flash-сайт, использующий динамические текстовые поля, сталкивается с одним и тем же выбором:

  1. Сохраняйте размер файла и используйте только шрифты устройства (без антиалиазии)
  2. Подскажите 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, которая упрощает встраивание шрифтов во время выполнения.

для части обновления я пишу массив, в который записывает шрифт и его текстовый формат.Затем, когда шрифт загружается, он ссылается на массив, который зацикливается и обновляет все зарегистрированные в нем текстовые поля.

Кажется, получилось.

Сёганай - отброс....ганбатте до упора!@

на основе идеи ЛираНуны....

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top