質問

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

つまり、XMLから読み込まれた動的TextFieldを、視聴者のロケールに合わせてスワップアウトされたフォントで話している-必要なフォントのみを(ファイルサイズに関係なく)動的にロードし、必要? Flashのみを使用し、Flexを使用しないソリューションを探しています。

役に立ちましたか?

解決 2

これについて誰も知らなかったことに全く失望しています-まあ。フォントの読み込みプロセスを処理する小さなクラスを書いた人を見つけ、読み込み用の.swfsを作成する方法について指示を出しました。

Flash AS3フォントの読み込み

うまくいけば、他の人がこれを役立てることができます-それが私の問題の魔法の弾丸であることが判明しました。

他のヒント

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

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

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

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

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

...

Font.registerFont(fontClass);

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

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

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

まず、中国語や日本語などのアジア言語で埋め込みフォントを使用することを誰も考えないように、期待を設定してください。数メガバイトのグリフを読み込む予定がない限り、デバイスフォントを使用します。そのため、使用するフォントの class - _sans _serif _typewriter またはローカライズされた同等のもの-フォント自体のガイドラインではありません。

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

クライアントは、すべての本文をGaramond-Extra-Britishまたはその他のものにすることを要求しますが、費用がかかることを確認してください。彼らが光を見ると、あなたは大きな痛みを和らげます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top