Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash AS3 BitmapData.draw()影响文本格式_Flash_Fonts_Draw_Bitmapdata - Fatal编程技术网

Flash AS3 BitmapData.draw()影响文本格式

Flash AS3 BitmapData.draw()影响文本格式,flash,fonts,draw,bitmapdata,Flash,Fonts,Draw,Bitmapdata,我需要显示抗锯齿的systemfonts(因为swf文件大小必须很小,所以我不能嵌入字体)。所以我写这个脚本是为了手动反别名文本 代码: 这很管用,但有件事很糟糕。有时,绘图调用的缩放会影响文本格式。例如,一行的最后一个字将改为下一行的第一个字。这决不能发生!有人知道它为什么会发生,我如何避免它吗?我希望文本完全按照文本框中显示的方式呈现到位图数据中 谢谢 看看新的文本引擎(需要播放器10.0,使用时间超过一年):显然,当一个TextField被放大时,它的缩放方式与矢量图形不同。TextFie

我需要显示抗锯齿的systemfonts(因为swf文件大小必须很小,所以我不能嵌入字体)。所以我写这个脚本是为了手动反别名文本

代码:

这很管用,但有件事很糟糕。有时,绘图调用的缩放会影响文本格式。例如,一行的最后一个字将改为下一行的第一个字。这决不能发生!有人知道它为什么会发生,我如何避免它吗?我希望文本完全按照文本框中显示的方式呈现到位图数据中


谢谢

看看新的文本引擎(需要播放器10.0,使用时间超过一年):

显然,当一个
TextField
被放大时,它的缩放方式与矢量图形不同。
TextField
的边界区域被放大,但实际文本内容的字体大小增加,以填充新区域,这可能会导致垂直对齐稍微移动和/或将单词推到下一行

    public function renderTextField():BitmapData{
        var w:int = this["mainTextField"].textWidth+10;
        var h:int = this["mainTextField"].textHeight+10;
        var bitmapData:BitmapData = new BitmapData(w*3,h*3,false,0x000000);
        var antialiased:BitmapData = new BitmapData(w,h,false,0x000000);
        var transf:Matrix = new Matrix();
        transf.scale(3,3);
        bitmapData.draw(this["mainTextField"],transf);
        var bitmap:Bitmap = new Bitmap(bitmapData,"auto",true);
        transf = new Matrix();
        transf.scale(1.0/3.0,1.0/3.0);
        antialiased.draw(bitmap,transf,null,null,null,true);
        return antialiased;
    }