You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
782 B
JavaScript
42 lines
782 B
JavaScript
|
|
|
|
class KeyDownManager
|
|
{
|
|
|
|
handlerList = [];
|
|
|
|
// return id;
|
|
register(handler, name)
|
|
{
|
|
this.handlerList.push([name, handler]);
|
|
console.log("register keydown", name);
|
|
}
|
|
|
|
deregister(name)
|
|
{
|
|
console.log("deregister keydown", name);
|
|
this.handlerList = this.handlerList.filter(v=>v[0]!== name);
|
|
}
|
|
|
|
constructor()
|
|
{
|
|
document.addEventListener( 'keydown', (event)=>{
|
|
|
|
for (let i = this.handlerList.length-1; i >= 0; i--)
|
|
{
|
|
let ret = this.handlerList[i][1](event);
|
|
|
|
if (!ret)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
|
|
var globalKeyDownManager = new KeyDownManager();
|
|
|
|
export{globalKeyDownManager}; |