Flex4 Flex 4为Spark组件嵌入字体
我在开源Flex 4.5 SDK Hero中嵌入字体时遇到问题,尽管我在Flex 4开源SDK中也遇到同样的问题。我已将一些ttf文件添加到我的项目结构的资产目录中,并尝试访问CSS文件中的字体,如下所示:Flex4 Flex 4为Spark组件嵌入字体,flex4,embedded-fonts,Flex4,Embedded Fonts,我在开源Flex 4.5 SDK Hero中嵌入字体时遇到问题,尽管我在Flex 4开源SDK中也遇到同样的问题。我已将一些ttf文件添加到我的项目结构的资产目录中,并尝试访问CSS文件中的字体,如下所示: @font-face { src: url("../assets/DroidSans.ttf"); fontFamily: DroidSans; embedAsCFF: true; } 在整个项目中,许多spark控件都需要使用此特定字体。这就是为什么EmbeddeAsCff设置为t
@font-face {
src: url("../assets/DroidSans.ttf");
fontFamily: DroidSans;
embedAsCFF: true;
}
在整个项目中,许多spark控件都需要使用此特定字体。这就是为什么EmbeddeAsCff设置为true的原因,尽管我相信此参数无论如何都是可选的。但是,在fontFamily属性中设置此字体时,所有spark组件都不会显示此字体。在为我尝试设置字体的每个spark组件编译时,我都会遇到以下错误:
警告:不兼容的嵌入式字体
为指定的“DroidSans”
控制名。此组件
要求嵌入的字体为
用embedAsCff=true声明
奇怪的是,上面的字体适用于mx组件,即使embedAsCFF设置为true,从我在本主题中查找的内容来看,mx组件应该设置为false,spark应该设置为true
上面的代码也可以在FlashBuilder中使用,但是,这个项目需要使用开源SDK进行开发,但失败了
有什么想法吗?肯定有其他人也有同样的问题
但是,当运行以下脚本时,它显示字体是嵌入的,只是不像CFFEmbedded那样嵌入。adobe文档说,这些需要说CFFEmbedded
var fontArray:Array = Font.enumerateFonts(false);
trace("Fontarray length: " + fontArray.length);
for(var j:int = 0; j < fontArray.length; j++) {
var thisFont:Font = fontArray[j];
trace("FONT " + j + ":: name: " + thisFont.fontName + " embedded as type:" + thisFont.fontType + ".");
}
疯狂的事情是——使用cff:true指令。所有文档都说要使用embedAsCFF。这会在使用cff属性时抛出一个错误-它似乎可以工作
我不知道-有人能提出一些想法吗?可能您使用的是较旧的SDK和编译器,在最新的SDK版本中,cff被重命名为embedAsCFF,从build Flex SDK 4.0.7972 build开始,请参阅此讨论以获取Flex SDK工程师的评论,该评论证明您可能使用的是较旧的SDK和编译器,在最新的SDK版本中,从build Flex SDK 4.0.7972 build开始,cff被重命名为EmbeddeAsCff。请参阅本讨论,了解Flex SDK工程师的评论,该评论证明我有一个非常类似的问题,但是我无法加载任何编译的SWF字体文件Flex SDK 4.1。最后,我使用以下代码解决了这个问题: MXML:
正如您所看到的,这是针对HelveticaNeue字体的,OpenType格式的常规字体和粗体字体,但我在TrueType方面也取得了成功。CSS的重要属性是字体查找:embeddedCFF。一旦我没有设置这个,编译工作,但嵌入式字体从来没有显示。加载由fontswf实用程序创建的SWF也是如此-对我来说从来都不起作用。我遇到了一个非常类似的问题,但是我无法加载任何已编译的SWF字体文件Flex SDK 4.1。最后,我使用以下代码解决了这个问题: MXML:
正如您所看到的,这是针对HelveticaNeue字体的,OpenType格式的常规字体和粗体字体,但我在TrueType方面也取得了成功。CSS的重要属性是字体查找:embeddedCFF。一旦我没有设置这个,编译工作,但嵌入式字体从来没有显示。加载由fontswf实用程序创建的SWF也是如此——对我来说从来都不起作用。所描述的问题可能是使用默认的字体管理器造成的。您需要使用CFFFontManager。通常,您会定义所有四个可能的管理器,以允许一些回退。这通常是MX应用程序尝试使用spark组件时遇到的问题 另见: 还有可能: Flexmojos的配置如下:您可以对flex-config.xml文件使用类似的配置,即上面的链接:
<fonts>
<managers>
<manager-class>flash.fonts.JREFontManager</manager-class>
<manager-class>flash.fonts.BatikFontManager</manager-class>
<manager-class>flash.fonts.AFEFontManager</manager-class>
<manager-class>flash.fonts.CFFFontManager</manager-class>
</managers>
</fonts>
请注意首选管理器位于底部。所述问题可能是由于使用了默认的字体管理器而导致的。您需要使用CFFFontManager。通常,您会定义所有四个可能的管理器,以允许一些回退。这通常是MX应用程序尝试使用spark组件时遇到的问题 另见: 还有可能: Flexmojos的配置如下:您可以对flex-config.xml文件使用类似的配置,即上面的链接:
<fonts>
<managers>
<manager-class>flash.fonts.JREFontManager</manager-class>
<manager-class>flash.fonts.BatikFontManager</manager-class>
<manager-class>flash.fonts.AFEFontManager</manager-class>
<manager-class>flash.fonts.CFFFontManager</manager-class>
</managers>
</fonts>
注意首选管理器位于底部。直接使用cff,救生圈!!而且它不需要将字体直接使用cff打包到swf文件中,这是一个救生圈!!而且它不需要将字体打包到swf文件中
<fonts>
<managers>
<manager-class>flash.fonts.JREFontManager</manager-class>
<manager-class>flash.fonts.BatikFontManager</manager-class>
<manager-class>flash.fonts.AFEFontManager</manager-class>
<manager-class>flash.fonts.CFFFontManager</manager-class>
</managers>
</fonts>