因此,在Windows上的Flash Builder中,我的应用程序和所有嵌入字体编译得很好。
但是当我尝试在我的生产Linux服务器上构建它时(使用make
通过命令行上的Makefile),在转码字体时编译失败:
/home/me/MyFlexProject/SomeModule/src/Fonts.as(29): Error: exception during
transcoding: Font for alias 'HelveticaRounded LT Std Blk' with plain weight
and style was not found at:
file:/home/me/MyFlexProject/SomeModule/src/assets/fonts/HelveticaRoundedLTStd-Black.otf
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',
fontName='HelveticaRounded LT Std Blk',
mimeType='application/x-font',embedAsCFF='false')]
我尝试过的事情:
使用其他字体管理器,通过“-managers = flash.fonts.AFEFontManage”。
使用不同的字体,但它或者给出了通常错误的略有不同的版本,请参阅:
Error: exception during transcoding: Font for alias 'xxx' with plain weight and style was not found at: file:...
使用fontforge
查看字体,我想我已经将问题缩小到显然在字体文件中定义了“Windows”和“Mac”名称的事实。这似乎是可能的罪魁祸首,因为在Windows上字体编译得很好,但是在Linux上它再也找不到具有相同名称的字体了。但是,即使我在Linux上切换到使用“Mac”名称,我仍然会收到与无法找到具有所请求名称的字体相同的错误。
我想知道发生了什么阻止转码能够发生。
以下是相关字体的链接:http://jetlib.com/HelveticaRoundedLTStd-Black.otf
为了更好的衡量,这里是Fonts.as:
package ...
{
import flash.text.Font;
public class Fonts
{
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',
fontNam e='HelveticaRounded LT Std Blk', fontWeight='normal',
mimeType='application/x-font',embedAsCFF='false')]
private static var _font1:Class;
/**
* register fonts with the font manager to be
* used in modules and sub applications
*/
public static function registerFonts():void
{
Font.registerFont(_font1);
}
}
}
任何帮助,想法或见解都会非常感激!
使用fontWeight ='bold'输出:
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): Error: exception during transcoding: Font for alias 'HelveticaRounded LT Std Blk' with bold weight was not found at: file:/home/me/MyFlexProject/SomeModulesrc/assets/fonts/HelveticaRoundedLTStd-Black.otf
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',fontName='HelveticaRounded LT Std Blk',fontWeight='bold',mimeType='application/x-font',embedAsCFF='false')]
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): col: 3: Error: unable to build font 'HelveticaRounded LT Std Blk'
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',fontName='HelveticaRounded LT Std Blk',fontWeight='bold',mimeType='application/x-font',embedAsCFF='false')]
^
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): col: 3: Error: Unable to transcode /assets/fonts/HelveticaRoundedLTStd-Black.otf.
使用fontWeight ='normal'输出:
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): Error: exception during transcoding: Font for alias 'HelveticaRounded LT Std Blk' with plain weight and style was not found at: file:/home/me/MyFlexProject/SomeModulesrc/assets/fonts/HelveticaRoundedLTStd-Black.otf
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',fontName='HelveticaRounded LT Std Blk',fontWeight='normal',mimeType='application/x-font',embedAsCFF='false')]
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): col: 3: Error: unable to build font 'HelveticaRounded LT Std Blk'
[Embed(source='/assets/fonts/HelveticaRoundedLTStd-Black.otf',fontName='HelveticaRounded LT Std Blk',fontWeight='normal',mimeType='application/x-font',embedAsCFF='false')]
^
/home/me/MyFlexProject/SomeModulesrc/Fonts.as(23): col: 3: Error: Unable to transcode /assets/fonts/HelveticaRoundedLTStd-Black.otf.
答案 0 :(得分:2)
是否有fontWeight='bold'
失败?您的两个片段可变地包含并省略该行。其中一个是正确的。
编辑:显然在两种情况下都失败了。我没有了。
答案 1 :(得分:2)
我只能猜测,因为我还没有尝试在Linux上嵌入字体。但据我所知,字体管理器的行为依赖于操作系统,因为每个操作系统都有一个不同的字体API,呈现给Flex的底层Java框架。 fontWeight参数可能因平台而异。
您是否尝试过“Black”作为fontWeight的值? 如果我的猜测是正确的,字体管理器无法向系统询问此字体的重量,并试图在otf内找到重量。但是otf将“黑色”定义为其重量。 我希望这有帮助,亲切的问候......
答案 2 :(得分:0)
我在RedHat 5.5版上遇到了同样的问题。 我转移到Ubuntu 11并编译没有任何问题。
答案 3 :(得分:0)
确保您没有覆盖默认的flex配置文件。 如果你需要一些配置属性附加它们 在Additionnal编译器参数中: -load-配置+ = configFile.xml 而不是 -load-config configFile.xml 它解决了我们的麻烦