Создание экземпляра мувиклипа с информацией о event.target - PullRequest
2 голосов
/ 06 июля 2010

Можно ли получить доступ к типу объекта, с которым вы взаимодействуете, чтобы я мог создать новый экземпляр того же объекта?Так, например, в приведенном ниже коде у меня есть мувиклип 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 Ответ

4 голосов
/ 06 июля 2010

В пакете flash.utils есть несколько методов, которые могут оказаться полезными.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...