Uno de los inconvenientes a la hora de usar eventos del teclado es identificar la tecla presionada, con canvas-event este problema no existe, ya que estos se asocian con una tecla o combinación de teclas.
ce.keydown("f1", function(c, e) {
alert("Lo siento, no hay ayuda disponible");
});
ce.keydown("ctrl+g", function(){
alert("El documento ha sido guardado");
});
Nota: Los eventos del teclado solo se disparan cuando el elemento canvas tiene el foco.
Las teclas soportadas son:
Si se usan modificadores estos deben estar en orden alfabético:
// Correcto
ce.keydown("ctrl+shift+g", function(c, e) {
alert("Guardar como");
});
// Esto no se ejecutará
ce.keydown("shift+ctrl+g", function(c, e) {
alert("Guardar como");
});
A diferencia de los eventos del ratón, this hace referencia a la instancia de canvas-event y no a un objeto en particular.
ovalo = ce.ellipse(50, 50, 20, 40).draw().get(-1);
ce.mousedown(function(c, e) {
// this es el objeto afectado por el evento
console.log(this === ovalo);
});
ce.keydown("a", function(c, e) {
// this es la instancia de canvas-event
console.log(this === ce);
});
La propiedad focused guarda una referencia al objeto con el foco del ratón, así se pueden ejecutar acciones sobre éste (ver ejemplo).
ce.keydown("delete", function(c, e) {
if ( this.focused ) {
this.remove(this.focused);
}
});