Flash CS5.5指定设备字体

时间:2012-10-03 16:08:39

标签: flash fonts device

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

据我所知,没有任何办法可以做到这一点 - 这是我见过的一个功能,很多人都抱怨没有!

你可以做的最好/唯一的事情是使用嵌入设置只嵌入你需要的字符(如果想出这个是不切实际的,'基本拉丁'在99%的时间都很好 - 如果我是道歉的话教你在这里吮吸鸡蛋,并限制你使用的字体数量,从设计的角度来看这也许是一个好主意。

重新上一句话,你只需要嵌入一次字体 - 每个带有该字体的文本框都可以引用它。

抱歉,我无法提供更多帮助,但我不认为你想做的事情可以做到。

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

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

答案 1 :(得分: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,例如使用单例模式,那么您将能够在代码中的任何位置使用它。但那是另一个故事......

相关问题