Как прослушать нажатие кнопки мыши - PullRequest
0 голосов
/ 09 мая 2020

Я использую Cocos2d- JS и мне нужно найти способ прослушивать нажатие кнопки мыши. Кажется, ограничено тем, что есть только onMousemove, onMouseDown и onMouseUp. Всех их увольняют только один раз. Как с их помощью определять, когда кнопка мыши удерживается нажатой? Я не могу просто использовать onMouseDown, поскольку он используется для выполнения действия при нажатии кнопки.

1 Ответ

0 голосов
/ 28 мая 2020

Я могу предложить для этого следующее решение. У вас может быть счетчик. onMouseDown запустит метод, который увеличит счетчик через setInterval и проверит, достиг ли счетчик целевого значения. Если значение будет достигнуто, он вызовет все, что вы хотите, при удержании кнопки мыши. onMouseUp сотрет счетчик интервалов. Вот упрощенный код. Предполагая, что это методы объекта.

onMouseDown: function() {
    this.launchTimer();
},

launchTimer: function() {
   //Timer will update every 100ms
   this.counter = 0;
   this.timer = setInterval(() => {

       //Assume our target value is 1s or 1000ms
       if (this.counter === 1000) {
           //Launch your function here
           this.onMouseHold();
           this.clearTimer();
         } else {
           this.counter += 100;
         }
       }, 100);

    this.timer();
},

clearTimer: function() {
   this.counter = 0;
   clearInterval(this.timer);
},

onMouseUp: function() {
   this.clearTimer();
}
...