0

フォント埋め込みで動的テキストフィールドを作成しようとしています。埋め込みは次のように動的です。

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 でコンパイルすると、埋め込まれたテキストがステージ上に表示されます。しかし、フラッシュ CS5 でコンパイルしようとすると、テキストが表示されず、エラー警告も表示されません。
理由は何ですか?フォントの埋め込みに別の方法を使用する必要がありますか?!

4

1 に答える 1

2

CS5の新機能であるフォントの埋め込みの大きな違いについて公開された記事がいくつかあります。これはかなり良いと思います:

Flash CS5の埋め込みフォントとHTMLテキストに問題がありますか?

フォントが埋め込まれる方法はCS5の改善ですが、CS5で編集するためにFLAを開くと、すべてのCS5動的テキストフィールドが壊れることを意味します。なんてこった!(SWFにデプロイされているため、すべてが正常に機能します。)

CS5でCS4FLAを開く場合は、基本的に動的テキストフィールドを再構築し、埋め込みを再適用する必要があります。

ここにコードがあります:

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);
于 2011-03-08T12:55:58.187 に答える