Actionscript 3 Actionscript3侦听自定义事件

Actionscript 3 Actionscript3侦听自定义事件,actionscript-3,actionscript,event-listener,starling-framework,Actionscript 3,Actionscript,Event Listener,Starling Framework,我用的是椋鸟,但这不会改变任何事情。我有一个从WorldManager.as(gist:)发送的自定义事件,我正在用init方法在游戏中收听它 通过跟踪一切,事件被调度,事件监听器被添加,但回调方法永远不会被调用。我听错了吗 谢谢。您正在收听已启动的事件。您需要提前添加事件侦听器 public class Game extends Sprite { public function Game() { this.addEventListener(Ev

我用的是椋鸟,但这不会改变任何事情。我有一个从WorldManager.as(gist:)发送的自定义事件,我正在用init方法在游戏中收听它

通过跟踪一切,事件被调度,事件监听器被添加,但回调方法永远不会被调用。我听错了吗


谢谢。

您正在收听已启动的事件。您需要提前添加事件侦听器

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!");
    }
}

您正在侦听已触发的事件。您需要提前添加事件侦听器

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!");
    }
}

如果你发布一些代码,我们可以看到你在做什么,你会得到更好的帮助。与问题相关的所有代码都有一个gist链接。如果你发布一些代码,我们可以看到你在做什么,你会得到更好的帮助。与问题相关的所有代码都有一个gist链接。