4

ご挨拶、

多言語対応の Flash アプリケーションを作成中です。これに最初に選んだフォントは、Unicode をサポートしている Tahoma でした。クライアントは、Lucida Handwriting などの非標準フォントを好みます。Lucida Handwriting は、Tahoma と同じようにキリル文字をサポートしていないため、解決する方法がいくつかあるという問題があります。

私が理解していることから、次のことができます。

  • クライアントに、Unicode と完全に互換性のある (キリル文字、ヘブライ文字、アラビア語、繁体字中国語、東アジアなど) フォントのリストを提供して、選択できるようにします。(そのようなリストをどこで入手できるかわかりません。Web を検索した結果、部分的に Unicode に準拠したフォントのリストしか見つかりませんでし。私が見た場所を見るための出発点)。
  • クライアントの場所 (既にある場所) に応じて、英語を話すユーザーには Lucida Handwriting でレンダリングし、海外のユーザーには Tahoma でレンダリングします。これは少々頭の痛い問題かもしれません。誰もこのアプローチの経験がありますか?
  • 英語には Lucida Handwriting を、それ以外には Tahoma を使用する新しいフォント (IE、AlexeyMK Bold) を作成します。これは、Flash ファイルの重量に対して 500k のような広告を表示しますが、(私の理解が正しければ) 初回のみロードする必要があります。

何をアドバイスしますか?これらのうちどれが合理的な解決策で、どれが完全にそこにありますか? 私が考えていない方法はありますか?

どうもありがとう!アレクセイ

編集: この件に関する良い記事: http://www.itworld.com/print/58558

4

1 に答える 1

2

ええと、最終的には2つの本当の選択肢しかありません。SWFにフォントを埋め込んでフォントがどのように見えるかを保証するか、そうでないか、デバイスフォントを使用するかのどちらかです。(または、地域に応じて埋め込みフォントまたはデバイスフォントを使用して、2つを組み合わせたもの。)

フォントを埋め込まない場合、テキストに定義するフォントは、最終的には単なる提案にすぎません。ユーザーに表示されるのは、(そのマシンのフォントを使用して)自分のマシンでレンダリングされたデバイスフォントです。したがって、Tahomaを「提案」することはできますが、ユーザーに表示される内容は、そのフォントを使用しているかどうかによって異なります(たとえば、MacバージョンのフォントとPCバージョンでは異なる場合があります)。当然、これはサポートにも依存します。たとえば、アジアのフォントがない場合は、中国語は表示されません。(注:「_ sans」のようなフォントを選択することもできます。これは、クライアントに標準のsans-serifフォントを使用するように指示するだけです。実際には、これは、あなたが選択した場合と同じフォントになると思います。 dは「タホマ」を定義しましたが、YMMVです。)

フォントを埋め込むと、フォントはOSではなくFlashによってレンダリングされるため、ユーザーは期待どおりのフォントを表示できます。しかし、中国語に必要なグリフを含め、すべての地域に完全に埋め込むと、50万をはるかに超える量が追加されることがわかると思います。私の経験では2〜5MBのようになります。しかし、おそらく私が見逃しているいくつかの詳細があります。とにかく、コンテンツをWeb経由で配信するには、一般的に、少なくともアジアのフォントはデバイスフォントである必要があると思います。

混合ソリューションについて一言追加するために、私はこれを実行しました。つまり、SWFにロジックを追加できると仮定すると、たとえば、各テキストフィールドを2つ作成できます。1つは埋め込みの「Lucidawhatever」を使用し、もう1つは埋め込みのない「_sans」を使用して作成します。表示している領域に応じて、そのうちの1つを非表示にし、もう1つにテキストを配置します。(これを行うには、LocalizedTextfieldコンポーネントを1つ作成し、初期化時に静的プロパティからロケールを読み取らせます。)次に、ロケールごとに、ファイルサイズがその特定のセットの表示に値するかどうかを判断する必要があります。グリフの。

最後に、フォントによって発生するファイルサイズが1回だけ読み込まれるとは限りません。コンテンツをわかりやすくし、テキストフィールドにフォントを埋め込むと、フォント情報がSWFの一部になるため、何があっても毎回読み込まれます。それを外部化するには、Labelコンポーネントを別のファイルにすることができます。次に、それをロードするかどうかの決定は、ブラウザーのキャッシュ設定に依存します。フォントリソース自体を外部化して共有リソースとして使用することもできますが、AS2ではこれを機能させるのはやや面倒です。AS3の方が簡単だと聞きましたが、自分でやったわけではありません。

于 2008-12-09T01:59:40.167 に答える