textField中的失真

时间:2013-04-09 10:12:39

标签: actionscript-3 flash

我有一个绘制文本字段的位图数据。缩放后,文本是失真。 我使用以下代码:

// tf is text Field and bm is bitmap.
var tf:TextField = new TextField();
tf.text = "Hello world";
var bd:BitmapData = new BitmapData(200, 200, true, 0x00ff00);
bd.draw(tf);
var bm:Bitmap = new Bitmap(bd);
addChild(bm);
bm.scaleX = 2;
bm.scaleY = 2;

请指导我。

2 个答案:

答案 0 :(得分:1)

您应该使用变换矩阵将放大的文本字段(或任何其他矢量图形对象)绘制到BitmapData上。

var mat:Matrix=new Matrix();
mat.scale(2.0,2.0);
bd.draw(tf,mat);

答案 1 :(得分:0)

首先,增加字体大小,然后像这样转换和缩放为位图,

//---- Text format ----
var textFormat:TextFormat = new TextFormat();
textFormat.font = "Arial";
//textFormat.bold = true;
textFormat.size = 40;
//---------------------------------------------

//
var tf:TextField = new TextField();
tf.text = "Hello world";
/*tf.antiAliasType = AntiAliasType.ADVANCED;
tf.gridFitType = GridFitType.PIXEL;
tf.thickness = 0;
tf.sharpness = 0;*/
tf.setTextFormat(textFormat);
//

//
var bd:BitmapData = new BitmapData(200,200,true,0x00ff00);
bd.draw(tf);
var bm:Bitmap = new Bitmap(bd);
bm.smoothing = true;
addChild(bm);

bm.scaleX = 2;
bm.scaleY = 2;

祝你好运。