4

日本のサイトで動的テキストフィールドのフラッシュでアンチエイリアスを実現しようとしています。これらのテキストフィールドの内容は固定データではありません。

すべての文字を埋め込むと非常に重い swf ファイル (フォントだけで 3000kb 以上) になるため、フォントを埋め込むオプションはありません。これは、日本語には多数の固有文字 (文字通り数千) があるためです。

基本的に、動的テキストフィールドを使用するすべてのフラッシュ サイトは、同じ選択に直面します。

  1. ファイルサイズを抑え、デバイス フォントのみを使用する (アンチエイリアスなし)
  2. スムーズなアンチエイリアス フォントを表示するために、ユーザーに 3 MB 以上のフォントのダウンロードを強制します。

日本人の友達に聞いてみたら、「しょうがない!」と言われました。(翻訳:「仕方がない」)。誰にもアイデアがありますか?

ps: 残念ながら、Silverlight もオプションではありません。

4

4 に答える 4

4

本当にばかげた「回避策」であり、反対票を投じられると確信していますが、flash.text.TextField は flash.display.DisplayObject を継承しているため、flash.filters.Blur などの組み込みフィルターを使用してテキストをぼかすことができます。水平方向と垂直方向に半ピクセルずつ。

これにより、少し多くの CPU が消費されます。

編集: CS4 で少し作業した後、余分な CPU オーバーヘッドなしでそれを行う完璧な方法を見つけました! 結果は、「静的テキスト」レンダリングとまったく同じように 1:1 に見えます。同様のオプションを思い出すと、CS3でも同じことが機能すると思います。

テキストが選択されている間に、プロパティで [アンチエイリアス] を選択し、[カスタム アンチエイリアス] を選択します。厚さを 100 に、シャープネスを 0 に設定します。

于 2009-04-22T08:45:32.153 に答える
1

実行できることはたくさんありますが、どれもあなたの好みに合わないかもしれません。

  • Flash 10 にアップグレードしてください。フォントがアンチエイリアスされていないという問題は、Windows のみです。Linux と macOS はどちらもアンチエイリアス デバイス フォントを正しく処理します。現在、Flash 10 からは Windows でも動作しますが、動作させるには Flash 10 用にコンパイルする必要があります。Flash 10 をターゲットにする余裕がある場合、これがおそらく最良の方法です。
  • 使用できる文字数を制限し、必要な文字のみを埋め込んでください。これはどの Flash バージョンでも機能しますが、多くの場合、実用的ではない可能性があります。
  • あきらめてデバイスフォントを使用してください:上記の両方の方法があなたのケースで不可能な場合、これは本当にしょうがないケースだと思います。
于 2009-12-10T05:58:35.527 に答える
0

LiraNunaのアイデアに加えて...

同様のパスに沿って1つの記事を見ましたが、マスキングも行うことを目的としていました...彼らはムービークリップをビットマップに描画することを提案しました。これにより、フィルターが最初のレンダリングにのみ使用されるため、CPUが解放される可能性があります。その後、フィルターを取り除くことができます。

于 2009-05-29T05:47:20.317 に答える
0

ランタイムフォントの埋め込みはどうですか。

バックグラウンドで日本語フォントを読み込んでいる間に、デバイス フォントから開始できます。日本語フォントがロードされたら、フォントをロードされたフォントに更新して埋め込みを行う呼び出しを行います。

GAIA フレームワークが組み込まれているため、ランタイム フォントを簡単に埋め込むことができます。

更新部分では、フォントとそのテキスト形式を記録する配列を作成します。次に、フォントが読み込まれると、登録されているすべてのテキスト フィールドをループして更新する配列を参照します。

うまくいくようです。

しょうがないはこたつで……がんばって!

于 2009-05-29T04:48:35.567 に答える