flash - 如何优化模块化闪存应用程序(加载时间和灵活性)?

标签 flash actionscript-3 optimization module

我正在开发一个大型应用程序,它被分解成许多独立的 swf。有一个加载导航外壳和基础逻辑的主 swf,以及一个将子 swf 加载到主显示区域的模块加载系统。这一切都进行得很顺利,现在我开始构建模块,我开始觉得我的方法没有达到应有的效率。

模块 swfs(和相应的 flas)位于主项目的 src 文件夹的“modules”子目录中。这些模块共享大量的类。事实上,它们中的大多数都没有定义特定于该模块的新类。共享类具有复杂的继承和接口(interface)使用结构,位于主 src 文件夹的 view/structure 子目录中。

目前,为了在我的模块 swfs 中使用来自 View /结构的共享类,我将主项目的 src 文件夹添加到每个模块 flas 的源路径中。除了每次都有点乏味之外,它 1.) 将共享类冗余编译到每个模块中,全面增加文件大小,2.) 需要为每个想要工作的开发人员添加模块的新源路径/测试应用程序,因为它们是绝对值并且在每个操作系统的文件系统上都不同,并且 3.) 不允许在没有访问主项目 src 文件夹的情况下独立构建模块

我对闪存中的 RSL 做了一些研究,但我不太明白如何将它们纳入这个方案。

有什么想法吗?非常感谢阅读。

-丹麦人

最佳答案

在这种情况下,我强烈建议使用运行时共享库​​。我从来没有直接从 Flash IDE 完成它,因为我总是通过 Flex 编译,但是我想它应该与 Flash IDE 几乎相同的逻辑,但是你可能需要在我编写它时稍微调整以下解决方案从我的脑海中脱颖而出,但从未对其进行测试......

通过在其代码中以某种方式引用它们来包含要在主 shell 中共享的所有主要类(编译器以惰性方式包含类,并且不会包含和导出未引用的类)。

为确保共享类的一致性,发布所用类的 SWC(在发布设置中勾选“导出 SWC”)。您始终可以通过解压缩 SWC 的内容来仔细检查它。

在您加载的模块中,从“源路径”/“库路径”中删除类路径。相反,将新创建的 SWC 添加到“外部库路径”列表中。 当您现在导出模块时,在 SWC 中找到的类将不会包含在 SWF 中。

注意:当您从主 SW​​F 外部导出/运行模块时,您可能会遇到运行时错误(“找不到定义...”)。这是有道理的,因为您删除的定义应该来自主 SWF。

关于flash - 如何优化模块化闪存应用程序(加载时间和灵活性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143513/

相关文章:

php - Flash 和 PHP 脚本之间的安全通信

actionscript-3 - 如何在 Flash Professional 中为 Flash Stage 实例提供唯一属性以传递给 AS3 脚本?

c++ - 2D OpenGL 场景因大量重叠形状而变慢

html - 将 SWF 文件链接到另一个 HTML

iphone - 从 SWF 到 AIR 再到 iOS 应用程序

actionscript-3 - Actionscript-3和其他语言中存在接口(interface)的原因是什么

optimization - 如何使用光线相干性来提高光线追踪速度,同时仍然看起来很逼真?

android - AsyncTask 也在 flash 中?

actionscript-3 - 读取 URLLoader 的服务器错误消息

r - 通过排列 R 中的列来最大化矩阵的对角线