我一直在Flash和Flex中使用字体嵌入。我以为我明白它如何与Spark一起工作但是...... 我将Apache Flex 4.12与AIR 13.0一起使用
我的CSS:
@font-face {
src: url("../../../lib/formata-light-1361538983.ttf");
fontFamily: "Formata-Light";
embedAsCFF:true;
}
@font-face {
src: url("../../../lib/formata-light-1361538983.ttf");
fontFamily: "Formata-Light-NoCFF";
embedAsCFF:false;
}
@font-face {
src: url("../../../lib/Formata-Regular.ttf");
fontFamily: "Formata";
embedAsCFF:true;
fontWeight: normal;
}
@font-face {
src: url("../../../lib/Formata-Regular.ttf");
fontFamily: "Formata-NoCFF";
embedAsCFF:false;
fontWeight: normal;
}
@font-face {
src: url("../../../lib/Formata-Bold.ttf");
fontFamily: "Formata";
embedAsCFF:true;
fontWeight: bold;
}
@font-face {
src: url("../../../lib/Formata-Bold.ttf");
fontFamily: "Formata-NoCFF";
embedAsCFF:false;
fontWeight: bold;
}
我的代码:
<s:VGroup id="grp_debug">
<s:Label fontFamily="Formata-Light" text="Label Formata-Light" fontWeight="normal" />
<s:Label fontFamily="Formata-Light-NoCFF" text="Label Formata-Light-NoCFF" fontWeight="normal" />
<s:Label fontFamily="Formata" text="Label Formata" fontWeight="normal" />
<s:Label fontFamily="Formata-NoCFF" text="Label Formata-NoCFF" fontWeight="normal" />
<s:Label fontFamily="Formata" text="Label Formata bold" fontWeight="bold" />
<s:Label fontFamily="Formata-NoCFF" text="Label Formata-NoCFF bold" fontWeight="bold" />
<s:RichText fontFamily="Formata-Light" text="RichText Formata-Light" fontWeight="normal" />
<s:RichText fontFamily="Formata-Light-NoCFF" text="RichText Formata-Light-NoCFF" fontWeight="normal" />
<s:RichText fontFamily="Formata" text="RichText Formata" fontWeight="normal" />
<s:RichText fontFamily="Formata-NoCFF" text="RichText Formata-NoCFF" fontWeight="normal" />
<s:RichText fontFamily="Formata" text="RichText Formata bold" fontWeight="bold" />
<s:RichText fontFamily="Formata-NoCFF" text="RichText Formata-NoCFF bold" fontWeight="bold" />
<s:Button fontFamily="Formata-Light" label="Button Formata-Light" fontWeight="normal" />
<s:Button fontFamily="Formata-Light-NoCFF" label="Button Formata-Light-NoCFF" fontWeight="normal" />
<s:Button fontFamily="Formata" label="Button Formata" fontWeight="normal" />
<s:Button fontFamily="Formata-NoCFF" label="Button Formata-NoCFF" fontWeight="normal" />
<s:Button fontFamily="Formata" label="Button Formata bold" fontWeight="bold" />
<s:Button fontFamily="Formata-NoCFF" label="Button Formata-NoCFF bold" fontWeight="bold" />
</s:VGroup>
我得到了什么:
我认为Label
可以使用CFF字体,因为它使用TLF引擎。无论如何,尝试了每个配置,Label
或RichText
无效...
顺便说一句,我不明白为什么Buttons可以使用CFF和非CFF字体。
答案 0 :(得分:1)
我找到了一个解决方案,但我并不完全满意。
首先,您必须确保在安装Flex和AIR SDK时检查了Flex字体管理器。
最新版本的Apache Flex似乎在嵌入CFF字体方面存在问题。 由于嵌入在旧版本(Flex 4.10 AIR 3.8)中运行良好,我将jar复制到/ lib / external / optional中。
afe.jar是唯一一个具有显着尺寸变化的人(1.37Mo - > 626Ko)。它必须是使用的那个(CFFFontManager是优先的但不起作用......)因为现在显示了我的字体。 虽然有一个丑陋的填充物。
如果有人找到允许使用预期的CFFFontManager的解决方案,那就太棒了。
答案 1 :(得分:-1)
您是否了解移动项目you have to embed fonts twice?我复制了以下文字:
关于移动设备中的字体,您需要了解一些事项:
所有移动设备外观,LabelItemRenderer和IconItemRenderer使用
StyleableTextField(基于TextField)而不是Flash文本 发动机(FTE)