什么是在flash中嵌入字体的最有效方法

时间:2011-11-16 07:50:45

标签: flash flash-cs5

我正在使用Flash CS5,我的导出的SWF文件出现问题:它的大小超过100kb。我有2个矢量符号和4个动态文本,嵌入Calibri字体框,显示来自外部XML文件的信息。这些文本框是生成我的swf文件最大尺寸的文本框。我需要在某个地方减少,我已经搜索了但是我没有遇到过“将字体嵌入flash文件的最佳实践指南”。我发现很难相信如果你只嵌入1个单字体的字母数字字符,你的文件大小就会达到> 100kb ..

1 个答案:

答案 0 :(得分:2)

我已经多次参与其中,最终使用compc和mxmlc建立了swfs和swcs字体的ant构建系统。使用Calibri Regular,标点符号,alpha和数字进行快速测试会导致swc大小约为22KB。我不确定CS5正在做什么来吹掉swf大小。

我的建议是使用compc生成字体swc,然后将库链接到项目,并用指定链接字体文件的文本格式覆盖文本字段的现有文本格式。

这是我用来生成swc / swf的类:

package
{

import flash.display.Sprite;

public class Calibri extends Sprite
{
    [Embed(source="../assets/calibri.ttf", fontName="Calibri", mimeType="application/x-font", unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E')]
    public static var fontClass:Class;
    public static var fontName:String = "Calibri";
}

}

链接字体库的使用:

Font.registerFont(Calibri.fontClass);

TextFormat对象的参考:

textFormat.font = Calibri.fontName;

祝你好运!