【发布时间】:2014-01-29 19:19:58
【问题描述】:
好的,我在为我正在开发的应用程序中成功嵌入和使用我的字体时遇到问题。
我使用 Flash Builder 4.7、Flex 4.11、AIR 4.0 和 AS3 来开发应用程序,主要依靠 AS3,因为这通常是我的强项。
我希望看到显示的字体,但它以典型的衬线字体显示它们,而不是我正在加载的字体,而不是默认的无衬线字体。我有时也会收到关于 embedAsCFF 需要为 true 的警告。这已经设置为true了,你可以在下面的代码摘录中看到,警告不一致,但错误是一致的。
这是我在应用程序的 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 和谷歌搜索,虽然我找到了很多建议,但没有发现任何适合我的情况。大多数解决方案都专注于 TextField 元素,但这些都是 Spark 标签。
我已在适用的情况下使用 Spark 标签对大部分应用程序进行了编程,并将嵌入更多字体,因此我更愿意继续使用它们。
【问题讨论】:
标签: actionscript-3 apache-flex fonts label flex-spark