SWC 嵌入问题
今天我们继续来探索SWC问题.一直没有找到关于SWC如何使用方面的权威指导,所以,每次有什么疑问我总是自己去测试.今天我又有一个疑问:一个Flex项目中,SWC和SWF体积之间是什么关系呢?了解这个可以让我们更好的去做项目.因此,我对引入SWC做了下面三个方面的假设:
1.假设一:一但项目包含SWC(即lib文件夹下有SWC),那么SWC中的资源就会全部嵌入到SWF中,SWF文件就会增加
2.假设二:引用一个SWC里的某个资源,就会将这个SWC的所有资源嵌入到SWF文件中.不使用则不嵌入
3.假设三:引用一个SWC里的资源,只会将此资源嵌入SWF文件,其它没用到的将不嵌入
于是我开始进行验证.先生成一个里边含有两个MP3(每个是3M左右)文件SWC,放到lib目录下.由于已经设置了lib目录为引用SWC的文件夹,项目就把SWC包含进去了.再看生成的SWF,只有50多K前后对比一样,所以假设一是不正确的
我在主文件中new一个声音,看生成的SWF大小是2M多,new两个声音生成的SWF是5M多.这样就证明了假设三是正确的.
结论:引用一个SWC里的资源,只会将此资源嵌入SWF文件,其它没用到的将不嵌入.因此,我们可以放心大胆的把各个模块的素材和资源都装进SWC里,而不必每个模块生成一个SWC(当然如果你觉得有必要分开也是可以分开的),flex只会把你用到的资源嵌入SWF文件.
另外,只import一个资源的类,flex并不会把它嵌入,只有你import 并var a:Sound之后才会嵌入