2016-03-02 1 views
0

Я делаю игру HTML5 с melonjs. Для одного из моих вопросов (называемого ET1) необходимо прослушать 2 события: pointerup & pointerdown. Мои события регистрируются в моем файле 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 из жгутов рег isterPointerEvent, но я не знаю, как это сделать из метода обновления entitie. Любая идея?

ответ

2

, если вы ничего не делаете с объектом Event, вы можете просто вручную опубликовать сообщение «pointerup», точно так же, как вы подписались на них:

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

{} здесь смысл заменить событие объект, хотя вы можете передать его также, так как он доступен в глобальном масштабе.

+0

Объект 'event' также может быть синтезирован здесь:' {gameX: 15, gameY: 99} ' –