private void hookEvents() {
HTMLDocument document = canvas.getOwnerDocument();
canvas.addEventListener("mousedown", this, true);
document.addEventListener("mousedown", this, true);
canvas.addEventListener("mouseup", this, true);
document.addEventListener("mouseup", this, true);
canvas.addEventListener("mousemove", this, true);
document.addEventListener("mousemove", this, true);
canvas.addEventListener("mousewheel", this, true);
document.addEventListener("keydown", this, false);
document.addEventListener("keyup", this, false);
document.addEventListener("keypress", this, false);
canvas.addEventListener("touchstart", this);
canvas.addEventListener("touchmove", this);
canvas.addEventListener("touchcancel", this);
canvas.addEventListener("touchend", this);
}