我有一个 Flex 应用程序,加载时间非常重要(消费者网站)。我希望能够在屏幕上显示一些内容,然后允许根据需要加载其他模块。
我面临的问题是所有模块的总和比我将所有组件包含在单个 .swf 文件中要大得多。
原因很明显。例如,访问 Web 服务所需的类似乎需要大约 100kb。如果我不在 main.swf 中使用这些类,那么它们将包含在使用它们的每个模块中。因此,如果我有 5 个模块,那就浪费了额外的 500kB。
理论上我想要3个级别
main.swf - 最小可能的布局/样式/字体/框架类型内容
common.swf - 模块 1 + 模块 2 所需的附加类(例如 Web 服务)
module1.swf - 站点中的模块 1
module2.swf - 站点中的模块 2
我不知道这是否可能。
我想知道是否可以加载框架的一部分而不是整个框架的 swz/swf 文件。
我确实需要将主应用程序的大小减小到 200Kb。当我添加 Web 服务和基本数据网格功能时,它会增长到 450kb。
任何吸取的教训将不胜感激。
我知道这是不久前的事,但我想我会发布另一个回复,以防有人仍在寻找答案。
我一直在研究优化 Flex 应用程序,经过一番检查后,决定使用模块。主要是因为他们有很好的优化选项。
您需要的两个 mxmlc 命令是:
mxmlc -link-report=MyAppReport.xml MyApp.mxml
and
mxmlc -load-externs=MyAppReport.xml MyModule.mxml
我的外部 swf(使用 Flex 框架)现在只有 21k。它做了很多事情(到目前为止),但即使它做得越来越多,它仍将继续使用主应用程序代码中的资源。
这是我为加速该过程而创建的批处理文件(您必须将 mxmlc 放入环境路径变量中才能使其像这样工作。控制面板 -> 系统 -> 高级 -> 环境变量,编辑路径系统变量,添加mxmlc 的路径(需要重新启动)):
cd C:\Projects\MyProject\Develop\Modules
mxmlc -link-report=MyAppReport.xml C:\Projects\MyProject\Develop\Source\Main.mxml
mxmlc -load-externs=MyAppReport.xml MyModule.mxml
move /Y MyModule.swf ..\Runtime\Modules
更多信息请点击这里:http://livedocs.adobe.com/flex/3/html/help.html?content=modular_4.html http://livedocs.adobe.com/flex/3/html/help.html?content=modular_4.html
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)