有没有办法生成一个实现基于类的名称的接口的类的实例?
我在尝试:
var ClassReference:Object = getDefinitionByName("movement.OuterSpaceMovement") as IMovement;
var m:IMovement = new ClassReference as IMovement;
trace("startup..." + m);
- 但是我收到一条错误消息ReferenceError:错误#1065(OuterSpaceMovement)未定义。
我有几个实现相同接口的类(IMovement)但我需要能够生成这些类的新实例,然后将这些实例作为数据类型(IMovement数据类型)传递给其他类...
然后我尝试了:
var ClassReference:Class = getDefinitionByName("OuterSpaceMovement") as Class;
var m:IMovement = new ClassReference() as IMovement;
这似乎不起作用......但是以下
var m:IMovement = new OuterSpaceMovement();
确实??
答案 0 :(得分:1)
您的ClassReference应为Class类型,因此:
var ClassReference:Class = getDefinitionByName("movement.OuterSpaceMovement") as Class;
var m:IMovement = new ClassReference() as IMovement;
这应该有效,除非类定义有问题(它必须包含在构建中,所以你必须至少在程序中的某个地方导入OuterSpaceMovement,或者在构建设置或编译器选项中明确地包含它) )。
当然,OuterSpaceMovement必须实现IMovement。 ;)