mx组件内的Spark项不会呈现嵌入字体

时间:2011-01-31 10:44:29

标签: flex4 embedded-fonts flex-mx flex-spark

我最近将Flex3 AIR项目转换为Flex4,因此它现在使用Flex4.1 sdk和<s:WindowedApplication>。这是一个大项目,并且已经精心更新了所有重要的代码,以便与Flex4一起工作,现在它很乐意编译。

项目中的大多数组件都是基于mx的组件的几代代表,所以由于工作量的原因,我还没有将其更新为spark。我遇到的问题是我无法使用嵌入式字体来处理我现在添加到mx组件的spark组件。

例如,我编辑了一个(基于mx的)组件并添加了一些项目。我的嵌入字体必须具有embedAsCFF = false,以便它适用于我的mx组件。所以为了得到这个嵌入火花,我应该能够用embedAsCFF = true再次嵌入它,如下所示:

@font-face
{
    src: url("assets/fonts/MyriadWebPro.ttf");
    font-family: mainWithCFF;
    font-style: normal;
    font-weight: normal;
    font-anti-alias-type: "advanced";
    embedAsCFF: true;
}

s|Label{
    font-family: mainWithCFF;
}

我已经尝试了Adobe提供的基本示例,这个示例工作正常,但在我的复杂项目中,它不起作用。我没有得到任何错误,但使用MyriadWebPro而不是spark组件,它默认为Times。

我想知道这是因为我的组件是基于mx而不是基于spark的。也许这只适用于在spark组件中使用mx组件的情况?如果有的话,是否有人知道你有一个mx组件的问题的解决方案,并希望在其中有一个spark标签?

1 个答案:

答案 0 :(得分:3)

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

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

另外,我不确定您的高级抗锯齿是否正确。

Spark示例:

@font-face
{
    font-family: "Myriad Web Pro";
    src: url("./assets/fonts/MyriadWebPro.ttf");
    font-weight: normal;
    embedAsCFF: true;  /* Spark */
    advancedAntiAliasing: true;
    unicodeRange: 
        U+0041-U+005A, /* Upper-Case [A..Z] */
        U+0061-U+007A, /* Lower-Case a-z */
        U+0030-U+003F, /* Numbers [0..9] */
        U+0020-U+002F, /* Space + Punctuation [ !"#$%&'()*+,-./ ] */
        U+003A-U+0040; /* Special Chars [ :;?@ ] */
}

MX Halo示例:

@font-face
{
    font-family: "Myriad Web Pro";
    src: url("./assets/fonts/MyriadWebPro.ttf");
    font-weight: normal;
    embedAsCFF: false;  /* Halo */
    advancedAntiAliasing: true;
    unicodeRange: 
        U+0041-U+005A, /* Upper-Case [A..Z] */
        U+0061-U+007A, /* Lower-Case a-z */
        U+0030-U+003F, /* Numbers [0..9] */
        U+0020-U+002F, /* Space + Punctuation [ !"#$%&'()*+,-./ ] */
        U+003A-U+0040; /* Special Chars [ :;?@ ] */
}