Qual é a melhor maneira de lidar com vários eventos importantes em Javascript?
Pressionar a barra de espaço no jogo fará uma filmagem do personagem, pressionar a barra de espaço quando uma caixa de confirmação for exibida fará com que essa caixa desapareça e pressionar a barra de espaço em um formato de pontuação alta adicionará um espaço em uma caixa de entrada. Neste exemplo, existem vários eventos para a mesma chave, mas apenas um é acionado por vez.
Existe um método geral (ou específico para Javascript) ou uma maneira de programar para adicionar eventos a uma determinada chave, para que eles sejam executados apenas em determinadas circunstâncias?
Claro que isso pode ser feito assim:
var inGame = true|false;
var inConfirmationBox = true|false;
function spaceBarHandler(){
if(inGame){ /*shoot*/}
else if(inConfirmationBox){ /*remove box*/}
}
document.onkeydown = function(){ /* call space bar handler if space bar was pressed */ };
Mas essa é uma maneira muito confusa de programação, pois ações específicas são misturadas em uma função de manipulador de barra de espaço, o que dificulta a manutenção.
Qual é a melhor maneira de lidar com vários eventos para uma chave, de modo que esses eventos sejam acionados apenas em determinadas circunstâncias?