即时使用Adobe®Flash®Builder™4.6,此问题也存在于以前的版本中。
出于某种原因,我正在使用
cls = applicationDomain.getDefinition(name) as Class;
获取对象的构造函数,然后创建我的模块的实例class.thus make compile忽略我的模块类,因为它们与我的主class.how无关,强制其他类也编译成我的swf或swc文件?我没有找到我可以调整编译选项的地方。
现在我用这种方式来解决我的问题,在程序入口的最开始。
if(1+1==3){
//never be run but do make classes merge into swf files.
new MyModule();
}
我有像这样的数百个模块,我希望我能找到永久解决这个问题的方法
答案 0 :(得分:2)
你需要使用这个类来让它在swf中编译。
不是最好的方法,但
private var someVar:someClass;
使用“new”关键字将导致运行时为对象分配内存,因此您不想使用它。
整个加载模块和编译类都有代码味道
你最好让模块中的类实现一个接口。
答案 1 :(得分:1)
您需要至少有一个严格的类引用才能出现在项目中。我使用Array类型的静态变量来填充我需要的所有类,如果可以的话,永远不会真正引用该数组。
private static var dummy:Array=[OneClass, AnotherClass, Class01, Etc];
答案 2 :(得分:1)
你可以试试这个
package
{
public class IncludeClasses
{
import com.abc.db.Database;Database;
import com.abc.logs.KBRemoteLogTarget; KBRemoteLogTarget;
import com.abc.logs.KBLocalLogTarget; KBLocalLogTarget;
import com.abc.exception.GlobalExceptionHandler; GlobalExceptionHandler;
import com.abc.utils.NetConnectionMonitor;NetConnectionMonitor;
}
}
答案 3 :(得分:0)
您也可以通过设置编译器标志来完成此操作。 About the application compiler options
请参阅: 包含库[...]
仅包含作为类的继承依赖项的类 包含在include-classes编译器选项中。
默认值为false。
这是一个高级选项。如果您可以使用此编译器选项 正在创建自定义RSL并希望外部化尽可能多的类 可能。例如:
compc -include-classes mx.collections.ListCollectionView
-include-inheritance-dependencies-only=true
-source-path . -output lcv2 -directory