Flash内のテキストなどを動的に切り替える際には、テキストフィールドのダイナミックテキストなどを使いますね。そのダイナミックテキストをかっこよくエフェクトをかけてムービーを作ろうと思ったのですが、なんとテキストフィールドはアルファを受け付けないという事実を知りました。かっこいいエフェクトにアルファは必須。回避策を調べてみました。
結論から言うと、テキストフィールドはビットマップデータに変換してあげればalphaが効くということです。
以下、雑なswfですが。。。2つのテキストフィールドがありますが、上がビットマップに変換したデータ、下がビットマップに変換した後にalphaを50%にしたデータです。
こちらはActionScriptのみで作成しています。ドキュメントクラスは以下の通り。
public function Main() { var tf:TextField = new TextField(); var tfm:TextFormat = new TextFormat(); var bmd:BitmapData = new BitmapData(300, 50, true, 0x00ffffff); var helog_normal:Bitmap = null; var helog_alpha:Bitmap = null; // テキストフィールドを設定 tfm.size = 40; tfm.bold = true; tf.defaultTextFormat = tfm; tf.textColor = 0xffffff; tf.text = "helog"; // テキストフィールドをビットマップへ bmd.draw(tf); // 位置を指定して2つのビットマップデータを配置 helog_normal = new Bitmap(bmd); helog_normal.x = 100; helog_normal.y = 50; addChild(helog_normal); helog_alpha = new Bitmap(bmd); helog_alpha.x = 100; helog_alpha.y = 150; addChild(helog_alpha); // アルファーー! helog_alpha.alpha = 0.5; }
少し遠回りでめんどくさい処理にも見えますが、うまく流用できるようにパッケージにまとめておくといいかもしれませんね。
コメントする