ダイナミックテキストを回すとrotationが0のとき以外消えてしまう。

ならば、とビットマップ化するところまでは簡単だったけど、まんま白い背景がついてしまったので、それを消すところまでやりました。けっこうハマってしまった上、忘れてしまって二度手間になりそうな臭いプンプンなので、未来の自分の為にメモ。AS3です。

追記:他の方法(というかこっちが理想的)もエントリーしてます

package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.display.BitmapData;
import flash.display.Bitmap;
public class Index extends Sprite {
[SWF(backgroundColor = "0xaaaaaa")]
function Index() {
var tf:TextField;
var bm:Bitmap;
var bmd:BitmapData;
var sp:Sprite;

tf = new TextField();
tf.text = "この文字列を回転";
addChild(tf);

bmd = new BitmapData(tf.width, tf.height, true, 0x00ffffff);
// bmd = new BitmapData(tf.width, tf.height);
bmd.draw(tf);

bm = new Bitmap(bmd, "auto", true);

sp = new Sprite();
sp.addChild(bm);
addChild(sp);

sp.rotation = 45;
}
}
}

BitmapData(txtWidth, txtHeight, true, 0x00ffffff);

3番目の引数で「透過します」として、
4番目の引数で「透過するカラーコード」をしているみたい。←間違ってました。
4番目の引数は作成するBitmapの最初のカラーで、0xAARRGGBBの形式になります。
(上の0x00ffffffの場合、ffffffは白だけど先頭2桁のAA(透明度)が00だったので透明になりましたってことだね、きっと)

テキストを入れたmcにフィルタをかけて、テキストをビットマップ化させるような方法で実践している例もいくつかあったけど、なぜかうまくいかなかったので、これでやってみることにします。

Comments

Powered by Facebook Comments