减少字体加载时间flex

时间:2014-04-16 06:18:17

标签: actionscript-3 flash flex

我想在我的SWF应用程序中加载一些字体这些字体真的很胖,所以需要更多时间加载......

我有一些具体的想法 - >我可以加载这些字体加载我的应用程序之前?意味着当我的首页(只是HTML)到达浏览器时,我可以在后端加载字体SWF,以便我可以在应用程序中随时使用它:)

具体问题是: - flex是否在浏览器缓存或闪存缓存中加载字体?我可以使用来自另一个flash播放器实例的加载字体....

如果我可以在缓存中加载字体,我从另一个html页面和另一个Flash播放器实例加载它们:可以节省我的时间

加载的字体是否可用于整个网站上的其他swf,或只是加载字体的页面。

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以将字体嵌入到Flex应用程序中,这样就可以使用SWF文件下载字体。 这样您就可以在运行时轻松使用它们。

欲了解更多信息: Embed Fonts

[编辑] 我建议你将字体定义为一个样式声明,你可以使用styleManager在运行时加载它。

var url:String = "/pathTo/otherModule.swf"
var styleManager:IStyleManager2 = mx.styles.StyleManager.getStyleManager(null);
var dispatcher:IEventDispatcher = styleManager.loadStyleDeclarations2(url, true);
dispatcher.addEventListener(StyleEvent.COMPLETE, onReady);
dispatcher.addEventListener(StyleEvent.ERROR, onError);
dispatcher.addEventListener(StyleEvent.PROGRESS, onProgress);

答案 1 :(得分:0)

如何减少字体的文件大小?

我自己从未尝试过,但FontForge似乎是一种解决方案。

<强>加

如果无法减少文件大小,运行时共享库​​(RSL)可能是您想要的解决方案。

RSL将单独下载并缓存在客户端上。(请注意,您也可以使用外部库,但RSL是更方便的版本。)

如果您使用的是Flash Builder,则可以在“项目&gt;属性&gt; Flex构建路径&gt;库路径&gt;(您的库)&gt;链接类型和RSL URL”中进行设置。

您可能需要在网络服务器上上传3个文件

  • 嵌入字体文件的swc库
  • 一个简单的预加载器应用程序,它只是将swc链接到您的网页上的RSL
  • 您的主应用程序使用嵌入在swc中的字体,该字体也链接为RSL

有关详细信息,请参阅document