Flex嵌入印地语字体问题

时间:2009-07-04 07:52:56

标签: flex flash actionscript-3

对于附加的代码,我得到以下编译时错误: 转码期间的异常:别名'myFontFamily'的字体 没有发现大胆的重量和斜体的风格 姓氏'Kundli Hindi Normal'

我已经安装了其他印地语字体,我也得到了相同的错误。

虽然我没有收到标准字体的任何错误,例如Arial,Helvetica 甚至“微软喜马拉雅”

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Button x="96" y="102" label="Button"/>
        <mx:Style>
     @font-face {
    src:local("Kundli Hindi Normal");
    fontFamily: myFontFamily;
    advancedAntiAliasing: false;
    font-weight:bold;
    font-style:italic;
}

     Button {
        fontFamily: myFontFamily; 
        fontSize: 18pt;
     }
     HBox {
        fontFamily: Times; 
        fontSize: 18pt;
     }

  </mx:Style>


</mx:Application>

2 个答案:

答案 0 :(得分:2)

我刚下载了Kundli Hindi字体,我得到的只是一个'普通'字体 - 没有粗体或斜体。显然,我们可能从不同的地方获得了字体,并且您可能有其他字体,但 具有单独的粗体和斜体字体,以便嵌入具有粗体和斜体属性的字体。

另外,我下载的字体名为'Kundli Hindi NormalA'....不知道为什么它被命名为'NormalA',而不仅仅是'Normal'或'Regular'。你可以仔细检查,确保你的名字'Kundli Hindi Normal',如果你还没有。这似乎不是问题,但重新检查那种东西永远不会伤害。至少对我来说:)。

如果您无法获得此字体的粗体字体 - 从我自己在Google上搜索,看起来它不可用 - 您可以使用ActionScript的高级字体功能创建一个粗体和半粗体版本的字体。但是,我没有任何有用的建议来伪造斜体。

以下是使用嵌入字体(Myriad Pro)并通过subpixel样式修改其权重的示例:

.roomViewTitleRoomType
{
    color: "0x8AA1A8"; 
    font-size: 20;
    fontFamily: "Myriad Pro";
    fontAntiAliasType: "advanced";
    fontThickness: 200;
    fontGridFitType: "subpixel";
}

您可能希望使用高级字体操作(fontAntiAliasType,fontThickness,fontGridFitType)声明字体,如下所示,但只会忽略其他信息。

@font-face
{
    src: url("/assets/fonts/kundli.ttf");
    fontFamily: "Kundli Hindi Heavy";
    fontWeight: "normal";
    fontAntiAliasType: "advanced";
    fontThickness: 800;
    fontGridFitType: "subpixel";
}

希望这有帮助。

答案 1 :(得分:1)

字体文件本身可能具有粗体和斜体版本字体的“无效”名称。我不记得确切的细节,但我们有一个类似的问题,其中一个字体有一个自定义名称,因为它的粗体版本导致此错误。我们必须修改字体才能使应用程序编译。任何体面的字体管理程序都应该能够为您提供字体的详细信息,以帮助您发现错误。