Flash CS5, проблема динамического внедрения шрифтов

Я пытаюсь создать динамическое текстовое поле с встраиванием шрифта. Встраивание динамично, как это:

public class TextFormats extends TextFormat {

    private var TF:TextFormat = new TextFormat();
    [Embed(source = "/fonts/tahoma.ttf", fontWeight = "normal", fontFamily = "tahomaNormal")]
    var fontTahoma:Class;               

    private var fTahoma:Font;

    public function TextFormats():void {
        fTahoma = new fontTahoma();
    }

    public function format(fmb:String):TextFormat {
        TF.letterSpacing = -1;
        TF.font = fTahoma.fontName;     
        switch(fmb) {
            case "combolist_label":                 
                TF.color = 0x383838;
                TF.size = 13;
                TF.letterSpacing = 0;
                break;                  
        }
        return TF;
    }
}   

Когда я компилирую его во Flash CS4, встроенный текст появляется на сцене нормально! Но, когда я пытался скомпилировать его с помощью Flash CS5, текст не появлялся и никаких предупреждений об ошибках.
Какова причина? Должен ли я использовать другие методы для встраивания шрифтов?!

1 ответ

Решение

Опубликовано несколько статей о большой разнице в встраивании шрифтов, которая появилась в CS5. Я думаю, что это довольно хорошо:

Возникли проблемы со встроенными шрифтами и текстом HTML во Flash CS5?

Способ, которым встроены шрифты, является улучшением в CS5, но это означает, что все ваши динамические текстовые поля CS5 ломаются, когда вы открываете FLA для редактирования в CS5! Который отстой! (Все по-прежнему работает нормально, как развернуто в SWF.)

Если вы откроете FLA CS4 в CS5, вам в основном потребуется перестроить динамические текстовые поля и повторно применить встраивание.

Здесь есть код:

import flash.text.*;
var font:Font1=new Font1();
var txt_fmt:TextFormat=new TextFormat();
txt_fmt.font=font.fontName;
txt_fmt.size=24
var txt:TextField=new TextField();
txt.autoSize=TextFieldAutoSize.LEFT;
txt.defaultTextFormat=txt_fmt;
txt.embedFonts=true
txt.text="Designscripting.com"
txt.selectable=false
addChild(txt);
Другие вопросы по тегам