2012-01-12 2 views
1

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

На изображении под первой строкой находится фактическое TextField, а второе - с использованием сгенерированного растрового шрифта.

Character spacing problem example

Если вы посмотрите на слово «лиса» или «ред» слова «прыгнули» вы можете увидеть, что расстояние между буквами выглядит немного странно.

Есть ли альтернативы классу TextLineMetrics, который даст мне более точные персонажи?

UPDATE:

Text качество рендеринга с использованием нового Flash Text Engine:

Text rendering quality using the new Flash Text Engine

UPDATE 2:

Случайно я в конце концов нашел решение:

Первой проблемой был объект antiAliasType, который был установлен в AntiAliasType.ADVANCED.
Хотя он создает текст более высокого качества, он также вызывает TextLineMetrics, чтобы возвращать неправильные ширины символов.

Во-вторых, он также должен быть округлен (с использованием Math.ceil) до ближайшего пикселя, а не вниз.

+0

Возможно, это просто проблема округления. Вы пытались округлить значение пикселя вверх или вниз? (или, если вы уже округлили их, вы не пытались их округлить?) –

+0

Да, я сделал круглую позицию для целых пикселей, и теперь я попытался не округлить их, но это не повлияло и просто заставило персонажей размыться , – cmann

ответ

0

TextField слишком тяжел для этого. flash.text.engine будет работать лучше для создания растрового изображения

+0

Спасибо, я посмотрю. – cmann

+0

Пока это хорошо. использование 'TextlineMetrics.width' возвращает непоследовательные ширины, хотя я использую моноширинный шрифт, но с использованием FTE и' TextLine.textWidth' или 'TextLine.getAtomBounds' будет правильно возвращать одинаковую ширину для всех символов. Единственная проблема, которую я нахожу, заключается в том, что, по моему мнению, качество встроенного текста FTE плохое, я включил другое изображение, чтобы продемонстрировать проблему - нижняя строка выглядит нечеткой по сравнению с другими методами. Есть ли способ контролировать качество сглаживания с использованием FTE? – cmann

Смежные вопросы