我注意到在旧版本的flash中,你可以创建一个动态类的实例。我正在创建一个游戏,将有许多不同的类,可以在舞台上显示,但可以非常不时。我该如何动态地调用它们呢?例如
var newObject = new ["DynamicObject"]();??
这在As3中是可能的吗?
发布于 2010-01-07 08:56:17
我认为有两种方法可以做到这一点:
1.使用ApplicationDomain.getDefinition('DynamicTemplate')
类似于:
var DynamicClass:Class = this.loaderInfo.applicationDomain.getDefinition('DynamicTemplate') as Class;
addChild(new DynamicClass);当您的文件具有INITialized时,您需要执行此操作。
2.使用getDefinitionByName():
var DynamicClass:Class = flash.utils.getDefinitionByName('DynamicTemplate') as Class;
addChild(new DynamicClass);如果您需要一种方法来获取类名来创建对象的新实例,您可以使用describeType()或通过实例的构造函数,但我认为您无论如何都会了解您的类。
var TemplateObj:Class = flash.utils.getDefinitionByName(describeType(yourIntance).@name) as Class;
var newObj = new TemplateObj();
var newObj2 = new yourIntance.constructor();希望这能帮上忙,乔治
https://stackoverflow.com/questions/2016201
复制相似问题