Flash: сглаживание символов в динамических текстовых полях без встраивания шрифтов на японском языке - PullRequest
4 голосов
/ 22 апреля 2009

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

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

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

  1. сохранить размер файла и использовать только шрифты устройства (без Сглаживание)
  2. принудительная загрузка шрифта 3 МБ + пользователю для отображения гладких сглаженных шрифтов.

Я спросил у некоторых японских друзей, и они сказали: "Сёганай!" (перевод: «ничего не поделаешь»). У кого-нибудь есть идеи?

ps: к сожалению, silverlight также не подходит.

Ответы [ 4 ]

4 голосов
/ 22 апреля 2009

Действительно тупой «обходной путь», и я уверен, что он будет лишен голоса, но поскольку flash.text.TextField наследует flash.display.DisplayObject, вы можете использовать встроенные фильтры, такие как flash.filters.Blur Размыть текст на полпикселя по горизонтали и вертикали.

Это потребляет немного больше ресурсов процессора.

EDIT: Немного поработав с CS4, я нашел идеальный способ сделать это без лишних затрат процессора! Результат будет выглядеть 1: 1 в точности как «статический текст». Я полагаю, что то же самое будет работать в CS3, если я вспоминаю похожую опцию.

Пока текст выделен, в свойствах выберите «Сглаживание» и «Настраиваемый сглаживание». Установите Толщину на 100 и резкость на 0. Это помогло мне!

1 голос
/ 10 декабря 2009

Есть несколько выполнимых вещей, но ни одна из них не может вам понравиться.

  • Обновление до Flash 10. Проблема отсутствия сглаживания шрифтов - только для Windows: Linux и MacO в любом случае корректно используют оба шрифта сглаживающего устройства. Теперь, начиная с Flash 10, он работает и на Windows, но вам нужно скомпилировать Flash 10, чтобы он работал. Это, вероятно, лучший способ, если вы можете позволить себе использовать Flash 10.
  • Ограничьте количество символов, которые вы можете использовать, и вставляйте только необходимые символы. Это будет работать на любой версии Flash, но во многих случаях может оказаться непрактичным.
  • Откажитесь и используйте шрифты устройства: если оба вышеупомянутых способа не возможны в вашем случае, я думаю, что это действительно случай shouganai.
0 голосов
/ 29 мая 2009

на вершине идеи LiraNuna ....

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

0 голосов
/ 29 мая 2009

Как насчет внедрения шрифтов во время выполнения.

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

Проверьте среду GAIA для простого внедрения встроенных шрифтов во время выполнения.

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

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

Сёганай - это бубен… Ганбатт! @

...