Impedir a rolagem da página quando a barra de espaço para cima ou para baixo for pressionada (Phaser3)

この記事は約3分で読めます。
スポンサーリンク

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.

コメント

タイトルとURLをコピーしました