Coisas que eu quero fazer
Ao criar um jogo com o Phaser3, pressionar a barra de espaço para cima ou para baixo pode rolar a página involuntariamente.
(Isso pode ser difícil de perceber se você o configurou para se ajustar ao seu ambiente local, mas pode ficar evidente quando você o carrega para o servidor devido à influência de anúncios, etc.)
Isso interromperá a rolagem pretendida.
implementação
Adicione o seguinte código à cena onde você precisa pressionar a barra de espaço para cima ou para baixo.
Chamar a função com create() funciona bem.
this.input.keyboard.on('keydown-DOWN', event => {
event.preventDefault();
});
this.input.keyboard.on('keydown-UP', event => {
event.preventDefault();
});
this.input.keyboard.on('keydown-SPACE', event => {
event.preventDefault();
});Além disso, como vários processos podem ser adicionados usando on(), mesmo que você já tenha registrado outros processos usando on() para os espaços acima e abaixo, não é necessário mesclar os processos; chamar o código acima funcionará sem problemas.
Existe um evento semelhante chamado keyup-XXXX, mas a rolagem da página é controlada pelo evento keydown-XXXX.
Resultado
Consegui impedir que a página rolasse ao pressionar a barra de espaço para cima ou para baixo no Phaser3.


コメント