2012-01-12 8 views
1

埋め込みフォントを使用して、実行時にビットマップフォントを動的に生成するクラスを作成しました。 これまでのところ、文字の間隔に小さな問題があることを除いて、うまく動作します。AS3で正確な文字/フォントメトリックを取得できますか?

下の画像の最初の行は実際のTextFieldで、2番目の画像は生成されたビットマップフォントを使用して にレンダリングされています。

Character spacing problem example

あなたが単語「キツネ」または単語の「ED」を見ると「跳んだ」あなたは文字間隔が少し奇妙に見えることがわかります。

TextLineMetricsクラスには、より正確なキャラクタメトリックを与える代替手段がありますか?

UPDATE:私は最終的に解決策を見つけた偶然

:2

Text rendering quality using the new Flash Text Engine

UPDATE:

テキストレンダリング品質が新しいFlashテキストエンジンを使用して

最初の問題はに設定されたantiAliasTypeプロパティでした。
高品質のテキストが生成されますが、TextLineMetricsは文字の不適切な幅を返します。

もう1つは、最も近くのピクセルまで切り上げる(Math.ceilを使用)とダウンしないことでした。

+0

多分丸めの問題です。ピクセル値を上下に丸めてみましたか? (または、既に丸めている場合は、丸めをしないで試しましたか?) –

+0

はい、私はピクセル全体の位置を丸めましたが、丸めを行わないようにしましたが、違いがなく、文字がぼやけてしまった。 – cmann

答えて

0

TextFieldはあまりにも重いです。 flash.text.engineは、ビットマップ生成のためにより良く機能します

+0

ありがとう、私はそれを調べます。 – cmann

+0

それは今のところよく見えます。モノスペースのフォントを使用していても、FTEと 'TextLine.textWidth'または' TextLine.getAtomBounds'を使うと、すべての文字に対して同じ幅が正しく返されますが、 'TextlineMetrics.width'を使って矛盾した幅が返されます。私が見つけた唯一の問題は、私の意見では埋め込まれたFTEテキストの品質が悪いことです。問題を実証するために別のイメージが含まれています。 FTEを使用してアンチエイリアスの品質を制御する方法はありますか? – cmann

関連する問題