似乎在时间轴的操作中编码时会自动包含每个actionscript文件(不是自定义文件),所以我想知道是否有必要通过代码导入文件。有什么好处吗?我可以阻止flash导入每个文件以减小我的Flash应用程序(SWF)的大小吗?。
例如,我无需导入MovieClip
以在时间轴操作中使用MovieClip
类。
答案 0 :(得分:0)
您确实可以加载外部资源,即SWF,MP3,WAV,JPG或任何具有解码器的字节序列,然后通过代码解析,然后在您的Flash应用中使用。优点是灵活性,例如,如果用户关闭所有声音,您可以自由地为他加载大型音乐,从而为他节省一些流量 - 这对于那里的某些人来说可能是至关重要的。还有一些缺点,因为SWF中的文件(资产)可以从应用程序的开头获得,并且由于连接可能随时丢失,您可能无法及时收到外部文件以供应用程序使用,或者不收到他们。
不导入以减少SWF大小?我会说减少这些资产的大小或质量。除非您有可动态下载的内容(可能还有一些额外级别的元数据),否则您应该避免使用Loader
s实际的混乱,并计划及时生成这些内容以吸引更长时间的注意力。
简而言之,所有静态内容都更好地嵌入,所有动态内容都应该在之后加载。
答案 1 :(得分:0)
编译FLA文件不会在生成的SWF中嵌入每个AS文件。我的测试目录结构。
工作目录
我的时间轴上的代码。
var a:ClassA = new ClassA();
生成的SWF仅包含ClassA。
对于带代码的多个SWF文件,每个SWF都嵌入了该类。告诉编译器是你的工作。
如果您使用的是FLEXSDK,则可以查看这些参数。 -link-report file.xml:在编译时生成包含所有AS文件包含的文件。 -load-externs file.xml:排除文件中的所有类包含。
如果您使用的是Adobe Flash exclude class article