【发布时间】:2011-07-19 00:07:43
【问题描述】:
我有一个非常基本的问题,以确保我没有遗漏一些明显的东西!
有人知道嵌入字体的替代方法吗?我正在开发一个全球应用程序,它将改变亚洲语言的字体。如果嵌入了这些字体,则会产生一个巨大的 SWF 文件,我想在亚洲系统上从 windows/fonts 文件夹中获取该字体。
干杯
【问题讨论】:
标签: actionscript-3
我有一个非常基本的问题,以确保我没有遗漏一些明显的东西!
有人知道嵌入字体的替代方法吗?我正在开发一个全球应用程序,它将改变亚洲语言的字体。如果嵌入了这些字体,则会产生一个巨大的 SWF 文件,我想在亚洲系统上从 windows/fonts 文件夹中获取该字体。
干杯
【问题讨论】:
标签: actionscript-3
您可以通过将字体嵌入到外部 SWF 文件中来做到这一点。
例如你有:
Arial_EN.swf
Arial_RU.swf
Arial_JP.swf
Arial_DE.swf
然后在您的配置文件中定义要加载的 swf。 加载 SWF 后
<!-- english Arial -->
<o n="font">
<o n="path">swf/Arial_DE.swf</o>
<!-- Styles, under which names your fonts are exported while emebeded -->
<o n="style">bold</o>
<o n="style">bold_italic</o>
<o n="style">italic</o>
<o n="style">regular</o>
</o>
加载瑞士法郎:
var fontLoader:Loader = new Loader ();
//all the eventlistener and functions for it
fontLoader.load ( xml.font.path )`
加载 swf 并获得样式名称后,只需注册字体,如果您将使用 embedFonts=true 选项
Font.registerFont ( fontLoader.getClass ( xml.font.style ) );
【讨论】:
我已经成功地使用诸如 Arial 之类的系统字体或简单的 _sans 用于具有特殊字符的语言。只需确保将 embedFonts 设置为 false。
【讨论】:
您可以在不同的 swf 资产文件中嵌入您需要的不同字体,并且只在运行时加载所需的字体。
【讨论】: