Input/src/lib/modules/input/models/devices/input-keyboard.ts

31 lines
770 B
TypeScript

import { InputDevice } from "../input-device";
export class InputKeyboard extends InputDevice {
static listenerInited = false;
constructor(
name: string,
) {
super(name, 'keyboard');
this.attachEvents();
}
private attachEvents() {
if (InputKeyboard.listenerInited) {
return;
}
window.addEventListener('keydown', e => this.catchKey(e, 1));
window.addEventListener('keyup', e => this.catchKey(e, 0));
InputKeyboard.listenerInited = true;
}
private catchKey(event: KeyboardEvent, value: number = 1, angle: number = 0): boolean {
const key = event.key;
super.setKey(key, value, angle);
event.preventDefault();
return false;
}
}