在ActionScript 3中从字符串实例化一个类

And*_*ndy 4 class actionscript-3 dynamic-class

我有一个字符串,在运行时,它包含我想要实例化的类的名称.我该怎么办?

我读了使用的建议flash.utils.getDefinitionByName():

var myClass:Class = getDefinitionByName("package.className") as Class;
var myInstance:* = new myClass();
Run Code Online (Sandbox Code Playgroud)

但是,这给了我以下错误:

[Fault] exception,information = ReferenceError:错误#1065:未定义变量className.

pro*_*ism 6

我想出的最简单的方法就是在项目的任何地方简单地用分号编写类名.

例如,我在其中创建一个Assets.as文件:

package {   

public class Assets {       

    // To avoid errors from the compiler when calling getDefinitionByName
    // just list all of the classes that are not otherwise referenced in code:
    Balloon;
    Cloud;
    FlyingHorse;
    FlyingPig;
    UFO;
    Zeppelin;       
}
}
Run Code Online (Sandbox Code Playgroud)

完整的代码示例/教程就在这里:http://producerism.com/blog/flashpunk-dame-and-lua-tutorial-part-6/