Actionscript 3 在AS3中,电影开始时如何运行代码?

Actionscript 3 在AS3中,电影开始时如何运行代码?,actionscript-3,class,static,initialization,initializer,Actionscript 3,Class,Static,Initialization,Initializer,我正在为我的游戏制作一个关卡编辑器,希望能够访问游戏中包含的所有类的列表。我的主类中有一个静态函数: public static function register(c:Class, category:String):void { if (classRegister[category] == null) { classRegister[category] = new Array(); } classRegister[category]

我正在为我的游戏制作一个关卡编辑器,希望能够访问游戏中包含的所有类的列表。我的主类中有一个静态函数:

public static function register(c:Class, category:String):void {
    if (classRegister[category] == null) {
        classRegister[category] = new Array();
    }           
    classRegister[category].push(c);        
}
然后,在我想要注册的每个类中,我放置一个静态初始值设定项:

{           
    Main.register(prototype.constructor, "motion");     
}
但是,静态初始值设定项仅在类首次使用时才被调用。有没有一种方法可以让类在游戏开始时强制自己被正确使用?我知道我可以在主文件中显式列出所有已注册的类,但这是次优的,因为每当添加需要注册的新类时,都必须编辑主文件

谢谢


Varga列出ApplicationDomain中的所有类定义,并根据命名约定或类型(接口?)对其进行筛选

要实现这一点,您可以使用
ApplicationDomain.getQualifiedDefinitionNames()
(),但前提是您的目标是FlashPlayer 11.3+


作为旁注,您必须在某个地方引用这个类,作为类字段,以便编译器知道它必须在SWF中包含这个类。您还可以将要引用的类放入SWC库中,并使用
-compiler。将库包含为编译器设置(在这种情况下,我想知道是否调用了静态初始值设定项?)。

您的类是否在代码中的某个位置被引用?它们是否被汇编到SWF中?此外,如果存在部分库(SWC),则您有更多可能影响答案的链接选项。