2016-03-02 203 views
0

我正在用melonjs製作HTML5遊戲。 我的一個實體(稱爲ET1)需要聽2個事件:指針&指針下降。我的事件是註冊在我的game.js文件,如下圖:MelonJS手動觸發事件

me.input.registerPointerEvent("pointerup", me.game.viewport, function (event) { 
    me.event.publish("pointerup", [ event ]); 
}); 

me.input.registerPointerEvent("pointerdown", me.game.viewport, function (event) { 
    me.event.publish("pointerdown", [ event ]); 
}); 

在我的ET1 entitie,我在聽兩個事件:

this.handler = me.event.subscribe("pointerup", function (event) { 
... 
}); 

this.handlerDown = me.event.subscribe("pointerdown", function (event) { 
... 
}); 

當觸發事件pointerdown,我更新本地屬性,如果該屬性達到一定值時,我想從更新方法手動觸發pointerup事件:

update : function (dt) { 
    this.handler = me.event.subscribe("pointerup", function (event) { 
     ... 
    }); 

    this.handlerDown = me.event.subscribe("pointerdown", function (event) { 
     ... 
    }); 

    localVar++; 

    if(localVar > 10){ 
     // trigger pointerup event 
    } 
} 

我現在有可能與event.publish從withing一個reg isterPointerEvent回調,但我不知道如何從entitie更新方法做到這一點。 有什麼想法?

回答

2

,如果你不與事件對象做任何事情,你可以手動爲您訂閱他們出版「pointerup」的消息,同樣的方式:

me.event.publish("pointerup", [{}]); 

{}這裏指更換事件對象,雖然你也可以通過它,因爲它可以在全球範圍內使用

+0

'事件'對象也可以在這裏合成:'{gameX:15,gameY:99}' –