0

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

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");     
}

但是,静态初始化器仅在第一次使用该类时才被调用。有没有办法让一个类在游戏开始时强制自己被使用?我知道我可以在主文件中显式列出所有已注册的类,但这是次优的,因为每当添加需要注册的新类时都必须编辑主文件。

谢谢,

瓦尔加

4

1 回答 1

0

列出 ApplicationDomain 中的所有类定义,并根据命名约定或类型(接口?)过滤它们。

为此,您可以使用ApplicationDomain.getQualifiedDefinitionNames()( docs ),但前提是您的目标是 FlashPlayer 11.3+。

作为旁注,您必须在某处引用此类,作为类字段,以便编译器知道它必须在 SWF 中包含此类。您还可以将要引用的类放在 SWC 库中并-compiler.include-libraries用作编译器设置(在这种情况下,我想知道您的静态初始化程序是否被调用?)。

于 2013-04-20T00:03:01.210 回答