如何强制编译器编译我的项目中的所有类?

时间:2012-11-09 14:19:52

标签: actionscript-3 flash-builder

即时使用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();
}

我有像这样的数百个模块,我希望我能找到永久解决这个问题的方法

4 个答案:

答案 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