Font嵌入了Flex 4.11,Spark和AS3的问题

时间:2014-01-29 19:19:58

标签: actionscript-3 flex fonts label flex-spark

好的,我正在为我正在开发的应用程序成功嵌入和使用我的字体存在问题。

我正在使用Flash Builder 4.7,Flex 4.11,AIR 4.0和AS3开发应用程序,主要依靠AS3,因为它通常是我的力量。

我希望看到显示的字体,但它会以典型的衬线字体显示它们,而不是我正在加载的字体,而不是默认的无衬线字体。我有时也会收到关于embedAsCFF需要为真的警告。这已经设置为true,您可以在下面的代码摘录中看到,并且警告不一致,但错误是一致的。

这是我在App的mxml文件中嵌入字体的地方:

[Embed(source="fonts/Interstate-LightItalic.ttf",
 fontFamily="LogoLight",
 fontName="LogoLight",
 fontStyle="italic",
 mimeType="application/x-font",
 embedAsCFF="true")]
var LogoLightFont:Class;

[Embed(source="fonts/Interstate-BlackItalic.ttf",
 fontFamily="LogoBlack",
 fontName="LogoBlack",
 fontStyle="italic",
 mimeType="application/x-font",
 embedAsCFF="true")]
var LogoBlackFont:Class;

在我的班级中,我正在创建两个Spark标签(import spark.components.Label;),并在updateDisplayList内设置他们的样式,如下所示:

构造函数内部:

this._appLabel = new Label();
this._subLabel = new Label();

然后覆盖updateDisplayList

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
    super.updateDisplayList(unscaledWidth, unscaledHeight);

    //style text fields
    this._appLabel.setStyle('fontFamily', EmbeddedImages.logoBlack);
    this._appLabel.setStyle('fontStyle', 'italic');
    this._appLabel.setStyle('fontSize', 72);
    this._appLabel.setStyle('color', 0xFFFFFF);

    this._subLabel.setStyle('fontFamily', 'LogoLight');
    this._subLabel.setStyle('fontSize', 28);
    this._subLabel.setStyle('color', 0xFFFFFF);
...
}

我遗漏了展示位置以及updateDisplayList的其余部分,以及应用程序的其余部分,但我希望我已经提供了足够多的人可以提供帮助。我查看了Stack Overflow以及Google搜索,虽然我发现了许多建议,却没有找到适用于我情况的内容。大多数解决方案都集中在TextField元素上,但这些是Spark标签。

我已经使用Spark Labels编写了大部分应用程序(如果适用)并且将嵌入更多字体,因此我更愿意留下它们。

1 个答案:

答案 0 :(得分:0)

您可以尝试设置标签对象的样式类。我的css文件下面的内容适用于sans-serif和serif。通过TextAreaSkin运行将其设置为serif字体。

@font-face { 
    src: url("../assets/fonts/MyriadPro-Regular.otf");
    fontFamily: "myriad";
    embedAsCFF: true; 
}
// sans-serif
.font24Style {
    fontFamily: "myriad";
    fontSize: 24;
}
// serif
.font14Style {
    fontFamily: "myraid";
    fontSize: 14;
    skinClass: ClassReference("spark.skins.mobile.TextAreaSkin");
}

View的代码......

...
<s:Label id="toName"
 styleName="font24Style"
alpha=".5"
width="20%"/>
<s:Label id="toAddress"
 styleName="font14Style"
alpha=".5"
width="40%"/>