I know there are many solutions with this type of question but somehow they are very complex.
I wanted to know what happens once a function is called. For example, in my sample code, when I call keyboardHandler()
once, the eventHandler will add the keyPressed()
and keyReleased()
functions to the keydown
and keyup
events. But since they are not global functions (but defined inside another function), will I be able to access them outside, in the global area, when a key is pressed?
If yes, does that mean a function once called is somewhat stored in the memory?
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var leftPressed = false;
var upPressed = false;
var rightPressed = false;
var downPressed = false;
function keyboardHandler() {
document.addEventListener("keydown", keyPressed);
document.addEventListener("keyup", keyReleased);
function keyPressed(e) {
switch(e.keyCode) {
case 37:
leftPressed = true;
break;
case 38:
upPressed = true;
break;
case 39:
rightPressed = true;
break;
case 40:
downPressed = true;
break;
}
}
function keyReleased(e) {
switch(e.keyCode) {
case 37:
leftPressed = false;
break;
case 38:
upPressed = false;
break;
case 39:
rightPressed = false;
break;
case 40:
downPressed = false;
break;
}
}
}