Linux下的ActionScript3字体编译转码错误

时间:2010-08-02 16:59:09

标签: flex actionscript-3 actionscript fonts embed

因此,在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.

4 个答案:

答案 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 它解决了我们的麻烦