您的位置:首页 > 编程语言 > PHP开发

Flash拆分项目:load SWF的工程配置方案

2011-09-05 11:51 190 查看
swf1 load swf2,一般是客户端太大,需要拆分为各个模块时需要采用的解决方法。比如游戏可以把登陆与游戏拆开。

1.

方案:

两者在同一个项目。

缺点是必须用同一种UI库,比如两者都要FLEX,不可以一个fl一个flex。

一般要拆分的,第一个swf1要尽量小。

特点:

swf2可断点。

把swf2对应的as文件设为可运行程序,swf2更改,编译运行swf1,会自动重新编译swf2。不设可运行程序不行。

2.

方案:

两者在不同项目,无其他设置。

load("swf2/bin-debug/swf2.swf")。swf1.swf和swf2.swf在两个文件夹,如果本来准备发布到同一个文件夹,load代码需要修改或使用条件编译。

所以我们需要把swf2的输出文件夹从默认的bin-debug改到swf1项目的moduls文件夹(看你使用哪个作为moduls文件夹,可以是swf1的bin-debug)

特点:

swf2不可设断点

swf2更改,编译运行swf1,不会自动重新编译swf2。

3.

方案:

基于方案2扩展。

两者在不同项目。

设置swf1  项目属性-构建路径-源路径,添加 swf2的src目录。

需要改swf2 output。

特点:

swf2可设断点

不会自动重新编译swf2。

4.

方案:

基于方案3扩展。

两者在不同项目。

设置swf1  项目属性-构建路径-源路径,添加 swf2的src目录。

设置swf1  项目属性-模块,添加swf2对应的as或mxml文件。

如果只供swf1加载,则在”针对以下应用程序优化“中选择swf1对应的as或mxml文件。

load("swf1/bin-debug/swf2")。swf1.swf和swf2.swf在同一个文件夹,load代码不用改了。

这种方案相当于将swf2放swf1项目里编译了,有点类似方案1,但是swf2还能作为一个独立的项目存在。

需要把swf2依赖的库文件加入swf1。这点比较不好,不过只要swf1不引用这些库,swf1大小不会改变。

但是如果swf2是flex项目,就要依赖mx和spark的一些库。如果swf1本来是纯as项目,就必须要吧swf1项目设为Flex项目。

设为flex项目,只是为了让swf1引用库,但flex项目是还会强迫swf1不能设as文件为可运行文件,这就和方案1有同样的缺点了。

特点:

swf2可设断点

会自动重新编译swf2。
5.

方案:

基于方案2扩展

两者在不同项目

设置swf1  项目属性-项目引用,添加 swf2项目。

需要改swf2 output。

特点:

swf2可设断点

会自动重新编译swf2。
http://livedocs.adobe.com/flex/3/html/help.html?content=creating_modules_2.html
swf编译时,对于主程序没有用到的类,没有import的类,不会编译进去。swc是所有都编译进去。

所以swf1如果load swf2,无法通过loaderInfo.applicationDomain.getDefinition获得swf2中没有用到的类。

使用另一个工程的类有3种方式

load  另一个工程的swf,要保证那个类在工程中有使用。

设置项目属性-构建路径-源路径,直接用不load。
把另一个工程设为swc。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息