2

非ラテン文字 (中国語など) を含む多数の異なる言語に翻訳されるプレゼンテーションを作成していると想像してください。クライアントのブランディング スタイル ガイドでは、特定の言語で特定のフォントを使用できることが規定されています。コンテンツ自体を外部化する必要があるため、.fla を開いたり、グラフィックを再保存したりせずにテキストを置き換えることができます。

つまり、XML から入力された動的な TextField について話しているのですが、ビューアーのロケールに対応するためにフォントがスワップアウトされています。(ファイルサイズに関係なく) 必要なフォントのみを動的に読み込み、必要に応じて適用する最も簡単な方法は何ですか? Flex ではなく Flash のみを使用したソリューションを探しています。

4

4 に答える 4

2

これはフラッシュでは少し面倒ですが、完全に可能です。あなたがする必要があるのは、別のswf内にフォントを「埋め込む」ことです。このswfをメインアプリケーションからロードし、そのswf内にもそのフォントを登録します。これにより、フォントの実行時の読み込みが可能になります。これには、アプリケーションまたは翻訳を保存する任意のファイルで言語ごとにフォントを指定する必要がありますが、これはおそらく完全ではありませんが、メイン アプリケーションにすべてのフォントを埋め込むこともありません。これは、何の理由もなくロードされた数百キロバイトのフォントに相当する可能性があります。

このブログ投稿には、それを機能させるために必要なことの概要が記載されています。私もこれを自分で行ったので、興味があれば、後でいくつかの例を使用してこの投稿を拡張できます。

于 2008-10-23T07:48:21.713 に答える
1

誰もこのことを知らなかったことに、私は完全に失望しています。私は最終的に、フォントの読み込みプロセスを処理する小さなクラスを作成し、それを読み込むための .swfs の作成方法を指示した人を見つけました。

Flash AS3 読み込みフォント

うまくいけば、他の人がこれを役に立つと思うでしょう - それは私の問題に対する魔法の弾丸であることが判明しました.

于 2008-10-29T00:40:21.023 に答える
0

さて、ロードしている言語を知る必要があります。自動検出は非常に難しい場合があります。

コンテンツの言語がわかっていれば、 Font.registerFont()を使用して実行時に使用するフォントを登録できます。これにより、フォントを含む swf をロードして登録し、将来すべてのテキストフィールドで使用できるようになります。print("コードサンプル");

[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);

Embed タグをサポートするには、flex コンパイラを使用してコンパイルする必要があることに注意してください。

追加の優れたユーティリティはFont.hasGlyphs()です。これを使用して、使用している文字が埋め込みフォントで使用できるかどうかを確認できます。これは、システム フォントに戻るか、開発者としての警告を表示するために使用できます (文字などを忘れた場合)。このチェックを自動的に行うように TextField をサブクラス化することをお勧めします。

これがオンラインになる場合、一般的に中国語を埋め込むことは、2 回考えるべきことです。すべての文字を埋め込むとファイルサイズが大幅に増加しますが、いずれにせよ利用可能な完全な中国語フォントはそれほど多くありません。もちろん、上記の手法は他の多くの言語でも有効です。

于 2008-10-22T09:13:51.573 に答える
0

まず、中国語や日本語などのアジア言語で埋め込みフォントを使用すると誰も思わないように、期待を設定してください。数メガバイトのグリフをロードする予定がない限り、デバイス フォントを使用することになります。そのため、使用するフォントのクラス_sans( 、_serif、またはローカライズされた相当物)に関するガイドラインを持つことは合理的です_typewriterが、フォント自体に関するガイドラインはありません。

第 2 に、これまでの私のアプローチは、ほとんどの場合、いずれにせよデバイス フォントを使用した方がよいということを人々に納得させることでした。デバイス フォントを使用すると、開発時間が短縮され、バグが回避されます。コンテンツの読み込みが速くなり (ネットワーク経由の場合)、ほぼすべてのケースでレンダリングが速くなります。多くの場合、より明確に読みやすくなります。

クライアントは、すべての本文テキストを Garamond-Extra-British か何かにすることを要求するのを好みますが、関連するコストを知っていることを確認してください. 彼らが光を見れば、あなたは大きな苦痛から解放されます。

于 2008-10-22T09:31:14.317 に答える