【问题标题】:Font embedding does not work or?字体嵌入不起作用还是?
【发布时间】:2010-09-01 10:22:15
【问题描述】:

所以 - 我有这个奇怪的问题。

我有一个主要项目,除了它被拆分为许多 SWF 之外不需要任何细节,所以 - 我想使用共享库来嵌入字体。完成 - 加载了 sl_fonts.swf,字体 - 检查并正常工作,其余的 SWF 在之后加载(由预加载器检查)。

现在 - 再次,我将请求的结果追溯到字体,它就像

DEBUG: REQUEST ArialBlack RETURN [class EMArialBlack] (main.swf)
DEBUG: GOT [class EMArialBlack] (loaded.swf)

为 ArialBlack 请求加载的 SWF 文件,它似乎得到了答案 - EMArialBlack,它是嵌入字体的类。

奇怪的是,当我将此返回到 TextFormat 的 .font 时,它并没有真正起作用。我什至在将 TextFormat.font 设置为返回后对其进行了跟踪。它实际上追踪了 [class EMarialBlack]。但是当我将此 TextFormat 设置为 TextField 时它不起作用?如果 embedFonts 关闭,则没有结果(它保留旧的 _sans 占位符字体)。如果打开,则根本不显示任何文字。

任何想法为什么会发生这种情况?

【问题讨论】:

    标签: actionscript-3 embedded-fonts


    【解决方案1】:

    .font = 字符串值(字体名称)

    var format1:TextFormat = new TextFormat();
    format1.font="Arial";
    format1.size=12;
    var result:TextField = new TextField();
    result.embedFonts=true;
    result.antiAliasType=AntiAliasType.ADVANCED;
    result.text="This text uses a gridFitType of " + tl;
    result.setTextFormat(fm);
    

    【讨论】:

    • 哦,我没注意到它是一个字符串。谢谢...但是还有另一个问题。我需要获取我的字体类的字符串 ID。不幸的是,字符串 ID 不是我所期望的“EMArialBlack”......所以我使用 Font.enumerateDeviceFonts(false) 遍历了可用的字体,它基本上告诉我嵌入字体的 ID,因为它们不需要注册.我发现它在“Arial Black”下注册 - 并且更改字体嵌入菜单中的任何内容都无法更改它。我尝试使用“EMArialBlack”、“ArialBlack”、“Arial Black” - 但这些都不起作用......想法?
    • name是你在flash ide的库中写的名字。右键->属性
    • 它设置为 EMarialBlack,名称和 ActionScript 类一样。但它不起作用 - 我尝试将“EMArialBlack”、“ArialBlack”和“Arial Black”作为 .font 参数,但仍然不起作用。我试过 WITH 和 WITHOUT .embedFonts 设置为 true。
    • 您可以在图片中看到名称在字体属性中,您应该使用.fontembed
    • 花了一天时间试图修复项目中的字体问题 - 忘了做 myTextField.embedFonts = true;为什么默认情况下不设置为 true?
    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2015-07-26
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多