медленно при изменении размера текстового поля, если embedfonts = false - PullRequest
0 голосов
/ 05 июля 2011

кто-нибудь сталкивался с проблемой, когда использование динамического текстового поля без встраивания шрифтов приводит к очень медленному изменению размера флэш-фильма (я изменяю размер текстового поля, используя свойства scaleX и scaleY, я также пытался использовать свойство width и heightно это точно такой же результат)?если я попытаюсь установить для свойства текстового поля embedFonts значение true, то при изменении размера проблем не будет, но как только я установлю для embedFonts значение false, окно флеш-памяти будет изменяться побитно

подробнее: это происходит только тогда, когда текстовое полетекст содержит много символов (около 100+ символов)

1 Ответ

0 голосов
/ 06 июля 2011

Попробуйте использовать FTE (Flash Text Engine), это намного быстрее, чем 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 здесь

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...