23

私は多言語プロジェクト(現在13言語)を持っています。これは「HelveticaNeue」のさまざまなフォントバリエーションを使用しており、ほとんどがLinoType Proフォントセット(西ヨーロッパの文字を含む)からの大胆で凝縮された通常のカットであり、キリル文字でも同じです。将来的には中国語と日本語のバリエーションを追加する予定です。

ユーザーが選択した言語に応じて、さまざまなCSSスタイルシートを使用し、バージョンごとにフォントを個別に読み込むようにプロジェクトを設定しました。そのため、行の高さ、カーニング、フォントサイズを変えて、すべてを元の外観に保つことができます。フォントが似ていない場合でも。

1つの問題を除いて、これはすべてうまく機能します。何らかの理由で、すべてのキリル文字が置き換えられているようです。これらは、正しいベースラインの2〜3ピクセル下に表示され、フィールドが自動サイズに設定されている場合でも、実際にはテキストフィールドの下の境界線を越えて突き出ています。を使用するtextfield.getCharBoundaries()と、明らかに正しくレンダリングされていなくても、すべての値が正しいように見えます。

すべてをきれいに見せるために、もちろん、問題のあるすべてのテキストフィールドを言語とフォントサイズに応じて手動で上下に移動することもできますが、自動的に処理するために、この種の変位を防止または少なくとも検出する方法があるかどうか疑問に思いました。調整-FlashPlayerには、レンダリング方法に関する何らかの情報が必要ですよね。同様の問題を抱えている人はいますか?またはさらに良い:解決策?

4

7 に答える 7

2

私は中国語でこの問題を抱えていましたが、OSXとWindowsでのみ問題がありました。キャラクターが実際にどこにいるかについての適切なメトリックを自動的に取得する方法もわかりませんでした。TextFieldを設定するたびに呼び出す大まかな関数になりました。

  public static function adjustPositioning(field:TextField):void
  {
    if(OS != "MAC") return;
    var fontSize:int = field.defaultTextFormat.size as int;
    field.y += fontSize/5;
  }

すべてのTextFieldをIDEではなくコードで設定していたので、これは簡単でした。私はそれがあなたが探していない解決策だと思います!

于 2011-01-26T13:37:16.123 に答える
2

お使いのバージョンのHelveticaNeueには、キリル文字のグリフがありますか?そうでない場合は、フォントのフォールバックが発生し、ロシア語に使用されるフォントは実際にはHelvetica Neueではなく、他のメトリックを使用した他のフォントです。そして、Helvetica Neueには間違いなく中国語のグリフが含まれていないため、中国語に行くと、これがさらに増えるでしょう:-)

反対に、本当に-本当にTLFを検討してください。国際的なサポートにははるかに優れており、Flash Player 10.0(TLFを導入)はすでに2.5年以上前のものです。古代の技術を使った高レベルの国際タイポグラフィを求めるのは無理だと顧客を説得してみてください。それはどちらか/または取引です。

于 2011-05-28T09:13:08.333 に答える
1

使用しているフォントにキリル文字のグリフに実際のエラーがあるようです。それで、これは残酷に単純ですが、厄介な解決策です。フォントを編集します。クレイジーに聞こえますが、キリル文字のグリフはそれほど多くなく、単一のフォントが必要なようです。編集し、修正したバージョンを配布すれば完了です。

Fontforgeはかなりまともです。セットアップしたら、1時間でフォントを編集できると思います。

于 2011-05-20T19:18:37.947 に答える
1

単純にフォントを変更して 1px 程度に調整してみましたか。文字を上(または下)にずらすだけで、みんなが書いたものをすべて読んだわけではありません。現在インストールしていませんが、エディターの好みは「Fontlab」だと思います。

于 2011-06-18T16:26:41.517 に答える
1

私はアラビア語で同様の問題を経験しました。Adobe アプリケーションでは、英語以外の言語で常に問題が発生しているようです。一部の言語では、Flash Player でテキストが破損しているように見えますが、Flash Player で Flash を再生している間は問題はありません。

何があなたの問題の解決策になるかわかりませんが、回避策を試すことができます。

この回避策を試してください。ただし、より複雑になります: - キーを押すたびに、押された文字を画像として挿入します。問題を解決できるかもしれませんが、コードを書くのに時間がかかります

于 2011-01-14T09:43:42.973 に答える
1

同様の問題がありましたが、試したすべてのソリューションは非常に複雑であるか、いくつかの欠点があります。

  • TLF を使用します。そうしたくないことはわかっていますが、これはかなり安全な (しかし複雑な) 解決策です。

  • 「可読性」アンチエイリアスを使用せず、「アニメーション」を使用してください。フォントは見栄えが悪くなりますが、メトリックはもう少し信頼できるはずです。

  • cacheAsBitmap または null フィルター (つまり、BlurFilter(0,0,0)) を試してください。場合によっては機能しますが、すべてではありません。

  • すべてのテキストフィールドを BitmapData として手動でキャッシュします。これにより、より信頼性の高いメトリックが表示されるはずですが、扱いにくい場合があります。getColorBounds を使用してその場でこれを修正し、「実際の」メトリックを取得することもできます。しかし、繰り返しになりますが、これはすべて非常にトリッキーであり、多くのテストが必要です。

于 2011-01-14T20:13:18.357 に答える