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


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种方式

  1. load  另一个工程的swf,要保证那个类在工程中有使用。
  2. 设置项目属性-构建路径-源路径,直接用不load。
  3. 把另一个工程设为swc。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值