使用event.target信息创建Movieclip的实例

时间:2010-07-06 10:24:28

标签: flash actionscript-3

是否可以访问与之交互的对象类型,以便创建同一对象的新实例?所以例如在下面的代码中我有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){
//??
}

1 个答案:

答案 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);