スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

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;
}

少し遠回りでめんどくさい処理にも見えますが、うまく流用できるようにパッケージにまとめておくといいかもしれませんね。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search