nodePong/client/lib/keyboard/event_handler.js

92 lines
2.3 KiB
JavaScript
Raw Normal View History

2016-02-13 14:49:19 +01:00
/**
* @file event_handling.js
* @autour frtk@tetalab
*/
NPGClient.evtHandler = {
keyState: {},
//
init: function() {
var self = this;
//
self.keyState = {};
2016-02-14 04:37:31 +01:00
for (k in NPGClient.KEYS) {
self.keyState[NPGClient[k]] = false;
2016-02-13 14:49:19 +01:00
}
//
document.addEventListener('keydown',function(e) {
self.keyState[e.keyCode || e.which] = true;
self.onKeyDown(e);
}, true);
//
document.addEventListener('keyup',function(e){
self.keyState[e.keyCode || e.which] = false;
}, true);
},
//
2016-02-14 04:37:31 +01:00
isValidKey: function(k) {
return (k >= 48 && k <= 90);
2016-02-13 14:49:19 +01:00
},
//
2016-02-14 04:37:31 +01:00
onKeyDown: function(evt) {
var self = this;
if (evt.keyCode == NPGClient.KEYS.ESC) {
//self.playerLogout(); // player logout
} else if (evt.keyCode == NPGClient.KEYS.F1) {
//self.sendToMenuPage(); // back to previous page
} else {
switch (NPGClient.PageHandler.currPage) {
case NPGClient.LOGIN.NAME:
2016-02-14 04:37:31 +01:00
self.userLogin(evt);
break;
default:
break;
}
}
2016-02-13 14:49:19 +01:00
},
2016-02-14 04:37:31 +01:00
/*
*
*/
//
userLogin : function (evt) {
2016-02-16 00:47:28 +01:00
2016-02-14 04:37:31 +01:00
var self = this;
2016-02-16 00:47:28 +01:00
//
2016-02-14 04:37:31 +01:00
switch (evt.keyCode) {
case NPGClient.KEYS.ENTER:
if (NPGClient.SocketIO.isConnected) {
if (NPGClient.userName.length != 0) {
NPGClient.SocketIO.sendMsg('regRequest', NPGClient.userName);
2016-02-14 04:37:31 +01:00
}
} else {
2016-02-16 00:47:28 +01:00
NPGClient.Utils.resetName();
NPGClient.PageHandler.getCurrPageUIElemByName('login_cursor').reset();
2016-02-14 04:37:31 +01:00
}
break;
case NPGClient.KEYS.BACKSPACE:
//--- remove a character
evt.preventDefault();
2016-02-16 00:47:28 +01:00
if (!NPGClient.Utils.nameEmpty()) {
NPGClient.Utils.removeChar();
NPGClient.PageHandler.getCurrPageUIElemByName('login_cursor').translateX(-15);
}
2016-02-14 04:37:31 +01:00
break;
default:
//--- add character
2016-02-16 00:47:28 +01:00
if (self.isValidKey(evt.keyCode) && !NPGClient.Utils.maxNameSize()) {
2016-02-14 04:37:31 +01:00
NPGClient.Utils.addChar(evt.keyCode);
2016-02-16 00:47:28 +01:00
newNameW = NPGClient.ui.ctx.measureText(NPGClient.userName).width;
NPGClient.PageHandler.getCurrPageUIElemByName('login_cursor').translateX(15);
2016-02-14 04:37:31 +01:00
}
break;
}
2016-02-16 00:47:28 +01:00
}
2016-02-14 04:37:31 +01:00
2016-02-13 14:49:19 +01:00
}