上下スペースキーの押下時にページスクロールしないようにする(Phaser3)

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

やりたいこと

Phaser3でゲームを作成した際に、上下スペースキーをキーを押下したときにページが意図せずにスクロールしてしまうことがあります。

(ローカル環境でフィットするようにスケールするように設定していると気が付きにくいのですが、サーバ上にアップロードした際に広告などの影響で顕在化することがあります。)

ここでは意図したスクロールを止めます。

スポンサーリンク

実装

以下のコードを上下スペースキーを押下する必要のあるシーンに追加します。

create()で呼べば問題ありません。

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();
});

またon()では複数の処理が追加できるので、上下スペースに対してほかの処理をon()で登録していても、処理をマージする必要はなく上記のコードを呼べば問題ありません。

似たイベントにkeyup-XXXXがありますが、ページのスクロールはkeydown-XXXXのイベントで行われます。

スポンサーリンク

結果

Phaser3で上下スペースキーをキーを押下したときにページがスクロールするのを抑制することができました。

コメント

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