0

私はスターリングを使用していますが、それは何も変わらないはずです。WorldManager.as(要点:https ://gist.github.com/raimonds1503/5101967)からカスタムイベントをディスパッチし、Gameininitメソッドでリッスンしています。

すべてをトレースすることにより、イベントがディスパッチされ、イベントリスナーが追加されますが、コールバックメソッドが呼び出されることはありません。私は間違ったオブジェクトを聞いていますか?

ありがとうございました。

4

1 に答える 1

3

イベントがすでに発生した後、イベントをリッスンしています。先にイベント リスナーを追加する必要があります。

public class Game extends Sprite 
{       
    public function Game() 
    {
        this.addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);
        trace("Starling running");
        GV.worldManager = new WorldManager();
        GV.worldManager.addEventListener(NewWorldEvent.CHANGE, addToStage); 
        this.addChild(GV.worldManager);
        GV.worldManager.setWorld(new World());
    }

    private function addToStage(e:NewWorldEvent):void 
    {
        this.addChild(e.world as World);
        trace("Handling new world event!");
    }
}
于 2013-03-06T19:33:59.413 に答える