是否可以访问与之交互的对象类型,以便创建同一对象的新实例?所以例如在下面的代码中我有movieclip myItem。单击它后,它将从舞台中删除,然后移动到库存。当我在那里点击它时,是否可以使用事件信息参数创建一个新的mcItemToDuplicate实例? (同时允许myItem成为它的位置)。
我的代码看起来像这样:
public function moveclip() {
var myItem:mcItemToDuplicate = new mcItemToDuplicate();
stage.addChild(myItem);
myItem.addEventListener(MouseEvent.CLICK, pickUp);
}
private function pickUp(e:MouseEvent){
stage.removeChild(MovieClip(e.target));
MovieClip(e.target).removeEventListener(MouseEvent.CLICK, pickUp);
inventory.addChild(MovieClip(e.target));
MovieClip(e.target).addEventListener(MouseEvent.CLICK, useItem);
}
private function useItem(e:MouseEvent){
//??
}
答案 0 :(得分:4)
flash.utils package有一些您可能觉得有用的方法。
import flash.utils.*;
//use currentTarget; target might be different.
var className:String = getQualifiedClassName(e.currentTarget);
var type:Class = getDefinitionByName(className) as Class;
var obj:Sprite = new type();//datatype of var obj can be Sprite or MovieClip
//or just Object depending on how you plan to use it
something.addChild(obj);