1

我像这样嵌入到我的应用程序中:

[Embed(source="/assets/arial.ttf", fontName="Arial")]
private const arial:String;

Flex 错误如下:

警告:为 mx.core::UITextField (UITextField75) 指定了不兼容的嵌入字体“Arial”。此组件要求使用 embedAsCFF=false 声明嵌入字体。

将上述内容更改为 private const embArial:String; 摆脱错误。为什么是这样?对此的解释的内部原理是什么?

更改字体名称无法解决。将变量更改为 Arial:String 确实可以解决。更改为 arial:Class 无法解决。很奇特。它似乎绑定到变量名 arial。

没有任何关于字体的教程或规范真正解决当字体嵌入绑定到变量时会发生什么。

4

2 回答 2

2

如果您的组件是 MX (Halo),您希望 embedAsCFF 为 false。

对于 Spark 组件,您可以嵌入 AsCFF: true。

CSS实现:

火花示例:

@字体脸
{
    font-family: "万维网专业版";
    src: url("./assets/fonts/MyriadWebPro.ttf");
    字体粗细:正常;
    嵌入AsCFF:真;/*火花*/
    高级抗锯齿:真;
    unicode范围:
        U+0041-U+005A, /* 大写 [A..Z] */
        U+0061-U+007A, /* 小写 az */
        U+0030-U+003F, /* 数字 [0..9] */
        U+0020-U+002F, /* 空格+标点符号 [ !"#$%&'()*+,-./ ] */
        U+003A-U+0040;/* 特殊字符 [ :;?@ ] */
}

MX 光环示例:

@字体脸
{
    font-family: "万维网专业版";
    src: url("./assets/fonts/MyriadWebPro.ttf");
    字体粗细:正常;
    嵌入AsCFF:假;/* 光环 */
    高级抗锯齿:真;
    unicode范围:
        U+0041-U+005A, /* 大写 [A..Z] */
        U+0061-U+007A, /* 小写 az */
        U+0030-U+003F, /* 数字 [0..9] */
        U+0020-U+002F, /* 空格+标点符号 [ !"#$%&'()*+,-./ ] */
        U+003A-U+0040;/* 特殊字符 [ :;?@ ] */
}

使用 Flex,我发现使用 CSS 处理字体更容易。只需在您的主应用程序中链接您的样式表:

<!--- CSS style -->
<fx:Style source="assets/css/common.css" />

如果你喜欢嵌入,它应该是Class转码类型。

嵌入实现:

    [Embed(systemFont = "Arial", fontWeight = "Regular", fontName = "Arial", mimeType = "application/x-font", embedAsCFF = "false", 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,U+00A1-U+00A1,U+00A3-U+00A3,U+00A9-U+00A9,U+00AE-U+00AE,U+00B0-U+00B0,U+00BC-U+00BE,U+00BF-U+00BF,U+00C0-U+00FF,U+2013-U+2014,U+2018-U+2019,U+201C-U+201D,U+2022-U+2023,U+2120-U+2120,U+2122-U+2122")]
    private static const Arial:Class;

在您的嵌入中,分别为 Spark 或 MX Halo 组件添加embedAsCFF=true或。embedAsCFF=false

于 2012-04-06T04:15:53.200 回答
1

Adob​​e 页面具有使用元数据在 Actionscript 中嵌入字体所需的语法(注意,您也可以使用 CSS 嵌入字体)。

于 2012-04-06T02:09:27.997 回答