如果embedfonts = false,则在调整textfield大小时会变慢

时间:2011-07-05 10:27:10

标签: flash actionscript-3

有没有人遇到过这样的问题,即使用动态文本字段而不嵌入字体导致flash影片以非常慢的方式调整大小(我通过使用scaleX和scaleY属性调整文本字段的大小,我也尝试使用width和height属性但它的结果却一样)?如果我尝试将textfield的embedFonts属性设置为true,那么在调整大小时没有问题但是一旦我将embedFonts设置为false,那么flash窗口似乎会逐渐调整大小

更多信息:仅当文本字段文本包含许多字符(大约100个字符)时才会发生这种情况

1 个答案:

答案 0 :(得分:0)

尝试使用FTE(Flash文本引擎),它比TextField快得多。这是一点性能测试。

public class TextFieldVsFteTest extends Sprite {
    [Embed(source="Font.TTF", fontFamily="FontFamilyName", embedAsCFF='false')]
    var _str:String;
    var tl:TextLine = null;         

    public function TextFieldVsFteTest () {    
        var ef:ElementFormat = new ElementFormat();
        var font:FontDescription = new FontDescription();
        font.fontName = "FontFamilyName"
        ef.fontDescription = font;
        ef.fontSize = 12;            
        ef.color = 0x000000;
        var tb:TextBlock = new TextBlock();
        tb.content = new TextElement("<HERE IS YOUR 100+ CHARS>", ef);
        tl = tb.createTextLine(null, 100);          
        addChild(tl);       
        tl.addEventListener(MouseEvent.MOUSE_MOVE, resizeHandler);          
    }

    private function resizeHandler(e:MouseEvent):void {
        tl.scaleX += 0.1;
        tl.scaleY += 0.1;
    }
}

当我使用TextField进行尝试时,它看起来很慢(如你所说)。但是通过FTE,它可以更快地调整大小。您可以详细了解FTE here

希望这有帮助。