AS3でデバイスフォントにアンチエイリアス
長文ツイート。Flashでダイナミックテキストを使うときは、フォントが決定していなくてはならない。その方法は・フォント埋め込み・デバイスフォントの2つ。でも日本語は世界で最も文字種の多い表記なので、フォントを埋めこむとメガバイトをあっさり超えてしまう。
2011-04-22 13:15:18というわけでデバイスフォントが最有力候補だが、これにはアンチエイリアスがかからないという弱点がある。それでもあえてアンチエイリアスをかけたいときは、いちど画像にして、画像加工の形で得なければならない。次に、その方法を示す。
2011-04-22 13:17:121.テキストフィールド(TF)を実際の数倍のサイズで生成 2.TFに文字を適用しビットマップデータ(BMD)にdraw 3.BMDにぼかしフィルタ適用 4.表示用の新規BMDを実際のサイズで生成 5.新規BMDに、大きなBMDをMatrix縮小しdrawして完成
2011-04-22 13:21:56なお、drawは遅い処理になるので、BMDを得るときには、某PC用ゲームの「少女祈祷中・・・」みたいなタイミングで予め生成しておくことが望ましい。もちろんBMDはメモリを逼迫するので、使わなくなった時点でdespose()を走らせて捨てること。
2011-04-22 13:24:26しっかし、AS3のスクリプトも、MCベースとBMDベースではかなりコードスタイルがかわるなぁ。正直、BMDは座標指定とかが扱いにくい。半透明も、拡大縮小も、フィルタも、draw()メソッドで一度新規BMDを生成しなくては表示できない。mcなら直接いじれるのに。
2011-04-22 16:35:26今はゲーム作ってるから60fpsを目指しているのでBMDベースでコードしているが、正直普通のムービーなら12fpsでも充分と思っているので、簡単なMC(つーかSprite)のほうがオススメ。楽なコードってのは出来上がりが早くデバッグしやすいって意味なので、選ぶ理由としては充分。
2011-04-22 16:39:05