1

我正在使用 Flash CS5.5 并希望指定设备字体,而不是嵌入。

问题是,虽然我知道设备上字体的准确名称,但我无法将字体名称输入到 Flash 创作环境中。我所拥有的只是创作机器中安装的字体的下拉列表。从选定的下拉列表中选择具有相似字体名称的“使用设备字体”会导致影片在设备上默认为 _sans。

我不希望开始使用 AS3 指定文本框和分配字体。

提前致谢。

4

2 回答 2

0

据我所知,没有任何方法可以做到这一点——我看到很多人都在哀叹没有这个功能!

您能做的最好/唯一的事情是使用嵌入设置来仅嵌入您需要的字符(如果弄清楚这一点不切实际,“基本拉丁语”在 99% 的情况下都很好 - 如果我教你在这里吸蛋),并限制您使用的字体数量,从设计角度来看,这也可能是一个好主意。

关于您的最后一句话,您只需嵌入一次字体 - 每个具有该字体的文本框都可以引用它。

抱歉,我无法提供更多帮助,但我认为您想要做的事情无法完成。

PS 作为替代方案,您可以将字体嵌入到单独的 swf 文件中并从中动态加载它们,因此您无需使用不需要的字体来膨胀主文件:

http://www.mokisystems.com/blog/flash-as3-loading-fonts/

于 2012-10-21T18:40:32.817 回答
0

AFAIK 这只能用 AS3 完成。我知道你说过你不想使用 AS3,但这很简单。这是代码:

要知道字体的确切名称,请使用此

var f:Font;
var fonts:Array = Font.enumerateFonts(true);
for(var i:int = 0; i < fonts.length; i++) {
    f = fonts[i];
    trace(f.fontName + "," + f.fontStyle + "," + f.fontType);
}

要首先使用字体,您可以通过这种方式创建一个 TextFormat 对象

var myFormat:TextFormat = new TextFormat();
myFormat.font = "Helvetica"; //use your own font here

然后,您可以将此格式应用于任何文本字段,由 AS3 创建或在 Flash IDE 中手动创建。

myTextfield.setTextFormat(myFormat);

如果您的 TextFormat 可以全局访问,例如使用单例模式,那么您将能够在代码中的任何位置使用它。但那是另一个故事了……

于 2012-12-06T03:02:15.757 回答