Classe Key: Intercettare la Pressione di un tasto

- Letture: 2.617

La classe Key permette di costruire un’interfaccia che può essere controllata da un utente mediante una tastiera standard. Le proprietà delle classi Key sono costanti che rappresentano i tasti utilizzati più frequentemente per il controllo delle applicazioni, quali i tasti freccia, Pg su e Pg giù.

  • Per identificare un evento associato al tasto, dobbiamo intercettare il numero associato:

Il valore del codice tasto per il tasto BACKSPACE (8).
Il valore del codice tasto per il tasto CONTROL (17).
Il valore del codice tasto per il tasto DOWN (40).
Il valore del codice tasto per il tasto ENTER (13).
Il valore del codice tasto per il tasto HOME (36).
Il valore del codice tasto per il tasto freccia LEFT (37).
Il valore del codice tasto per il tasto PGDN (34).
Il valore del codice tasto per il tasto RIGHT (39).
Il valore del codice tasto per SPACE (32).
Il valore del codice tasto per il tasto freccia UP (38).

  • Vediamo ora le istruzioni più usate:

Registra un oggetto per ricevere la notifica di onKeyDown e onKeyUp.
addListener(listener:Object) : Void
Restituisce il valore del codice tasto dell’ultimo tasto premuto o rilasciato.
getCode() : Number
Restituisce true se viene premuto il tasto specificato in keycode; false in caso contrario.
isDown(code:Number) : Boolean
Rimuove un oggetto registrato in precedenza con Key.addListener().
removeListener(listener:Object) : Boolean

E’ possibile intercettare oltre alla pressione del tasto (keyDown), il rilascio del pulsante con keyUp ecco un esempio basilare:

onClipEvent (keyUp) {
if (Key.getCode() == Key.SPACE) {
trace("rilascio Tasto Space");
}
}

Dopo aver visto un po’ di sintassi, ecco come potremo procedere a realizzare un oggetto che si muova, in relazione alle nostre frecce direzionali:

Nell’ evento onClipEvent (enterFrame) inseriamo delle condizioni if con le quali faremo muovere in nostro oggetto sulle assi x y a seconda del tasto premuto.

onClipEvent (enterFrame) {
if (Key.isDown(39)) {
this._x = _x+5;
}
if (Key.isDown(37)) {
this._x = _x-5;
}
if (Key.isDown(38)) {
this._y = _y-5;
}
if (Key.isDown(40)) {
this._y = _y+5;
}
}

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Partner & Chief Innovation Officer di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

4 Commenti

Commenti