0

アイテムがピックアップされたときにイベントを受け取る必要があるが、イベントが発生しないか、受信されないシーン クラスがあります。

public class Szene extends MovieClip {

    private var items : Array;


    public function Szene() {


        this.addEventListener(ItemEvent.PICKED_UP, removeItem);

    }

    public function removeItem(index : int)
    {
        trace("remove");
        this.removeChild(items[index]);
    }

...

}

public class FigurControl extends MovieClip {

    public function update(event : Event) 
    {


        for(var j=0; j < items.length; j++)
        {
            if(this.hitTestObject(items[j]))
            {
                trace("dispatch");
                this.dispatchEvent(newItemEvent(ItemEvent.PICKED_UP,j));
            }
        }
...


public class ItemEvent extends Event {

    public static const PICKED_UP : String = "pickedUp";

    public var data : int;

    public function ItemEvent(type : String, data : int, bubbles : Boolean=false, cancelable : Boolean=false)
    {
        super(type,bubbles,cancelable);
        this.data = data;
    }

    override public function clone() : Event
    {
        return new ItemEvent(type,data,bubbles,cancelable);
    }
}






        }

出力「ディスパッチ」を取得しますが、メソッド「removeItem」で受信されません:(理由は何ですか???

4

1 に答える 1

1

コンストラクターには、次のものがあります。

this.addEventListener(ItemEvent.PICKED_UP, removeItem);

オブジェクトがSzeneそれ自体をリッスンしていFigurControlます。代わりに、適切なオブジェクトをリッスンする必要があります。

myFigurControl.addEventListener(ItemEvent.PICKED_UP, removeItem);
于 2012-06-08T17:30:08.887 に答える