1

アニメーション化すると十分に滑らかに見える TextField を作成しようとしています。スムーズにアニメーション化されたテキストフィールドを取得できる唯一のオプションは、antiAliasType プロパティを AntiAliasType.NORMAL に設定することです。しかし、文字を少し太くするために、テキスト アンチエイリアシングを試してみたいと思います。そこで、antiAliasType を AntiAliasType.ADVANCED に変更します。その後、アニメーション化するとテキストフィールドがびくびくして見えます (グリフがピクセルグリッドにスナップされているように見えます)。textField のプロパティ gridFitType を変更しても意味がありません。

antiAliasType を AntiAliasType.ADVANCED に切り替えたときに、テキスト フィールドのアニメーションがスムーズになった人はいますか? (TLFテキストフィールドに切り替えると、テキストが飛び跳ねます)

ここに私の短いコードがあります:

var p:TextField = new  TextField();
var font:Font = new Font1XXX(); 
// font is embedded int the library and exported as Font1XXX class

var tfor:TextFormat = new TextFormat(); 
tfor.font = font.fontName;
tfor.size = 15;
tfor.color = 0xFFFFFF;
p.defaultTextFormat = tfor;
p.autoSize = TextFieldAutoSize.LEFT;
p.antiAliasType         = AntiAliasType.ADVANCED;
p.gridFitType   = GridFitType.NONE; 
// change to GridFitType.NONE does not make any sense;

p.selectable = false;
p.embedFonts = true;
p.text = "HELLO WORLD";
addChild(p);
4

2 に答える 2

1

フラッシュ内のすべてのテキストはピクセル全体にスナップされるため、テキストに関するアニメーションは「ギザギザ」に感じられます。

回避策は、「静的テキスト」をシェイプに変換してムービークリップ内に配置するか、テキストをビットマップに「コピー」してそのビットマップをアニメーション化することです。やりたいアニメーションの種類に応じて、最高の視覚体験を得るにはさまざまなソリューションが必要です。

たとえば、テキストをスクロールする場合は、ビットマップとしてキャッシュしてから、軸に沿って移動するのがおそらく最善でしょう。

テキストの拡大/縮小 (大幅に拡大/縮小されている場合)。これは残念です。視覚的なアーティファクトなしでこれを解決する良い方法が見つかりませんでした。通常、最善の解決策は、テキストを別のクリップにコピーし、テキストを非表示にしてからすばやくアニメーション化するか、テキスト自体からフォーカスを奪われるように他のエフェクトでカバーすることです。

于 2013-08-21T22:27:44.810 に答える
1

選択可能なテキストが必要ない場合は、テキスト フィールドをビットマップに描画し、テキスト フィールドの代わりにビットマップをステージに追加します。

于 2013-08-21T14:59:16.607 に答える