我能否使用字符串"ClassA"来实例化我的应用程序中的真正ClassA类?
flash.utils
包中使用getDefinitionByName方法。var ClassReference:Class = getDefinitionByName("ClassA") as Class;
mypackage.stuff.ClassA
,调用方式如下:var ClassReference:Class = getDefinitionByName("mypackage.stuff.ClassA") as Class;
var instance:Object = new ClassReference();
instance
来执行你的方法。instance.methodname();
记住,如果你想将它添加到显示列表中,你需要将它转换为DisplayObject
。
addChild(DisplayObject(instance));
看一下flash.utils.getDefinitionByName方法。你应该可以使用它来从类名字符串中获取一个类对象。
现在我可以通过字符串实例化图像库,这是我的代码!
import flash.display.Bitmap;
import flash.display.BitmapData;
var ClassReference:Class = getDefinitionByName("my0002") as Class;
var instance:BitmapData = new ClassReference();
var myb:Bitmap =new Bitmap (instance)
this.addChild (myb)
你可以使用
Eval("new "+myString+"()");
或者甚至可能
new Eval(myString)();
但我不确定Actionscript是否支持第二个。
com.namespace.subspace.MyClass
中,则应该有var MyClass:Class = getDefinitionByName("com.namespace.subspace::MyClass") as Class; var myObj = new MyClass();
- Ender