Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flex4 Flex 4为Spark组件嵌入字体_Flex4_Embedded Fonts - Fatal编程技术网

Flex4 Flex 4为Spark组件嵌入字体

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

我在开源Flex 4.5 SDK Hero中嵌入字体时遇到问题,尽管我在Flex 4开源SDK中也遇到同样的问题。我已将一些ttf文件添加到我的项目结构的资产目录中,并尝试访问CSS文件中的字体,如下所示:

@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>