2010-07-06 40 views
2

是否可以訪問正在與之交互的對象的類型,以便我可以創建同一對象的新實例?所以例如在下面的代碼中我有movieclip myItem。點擊後,它將從舞臺上移除,然後移動到清單中。當我點擊它時,是否可以使用事件信息參數創建一個新的mcItemToDuplicate實例? (同時允許myItem成爲它的位置)。使用event.target信息創建Movieclip的實例

我的代碼看起來是這樣的:

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){ 
//?? 
} 

回答

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); 
+0

啊,這就是我所需要的。非常感謝。 – Bjorninn 2010-07-06 11:05:46