Události kláves

Události kláves: KeyboardEvent

Události kláves nejdou napojit na jednotlivé instance, posluchač těchto událostí musí být vždy připojen na scéně (stage).

stage.addEventListener(KeyboardEvent.KEY_DOWN, mojeFunkce);

function mojeFunkce(e:KeyboardEvent){
        //co se má vykonat
}

Události kláves mají jen dva typy:

  • KEY_DOWN – zmáčknutí klávesy
  • KEY_UP – zvednutí klávesy

součástí události není, jaká klávesa se zmáčkla, to určuje vlastnost e.keyCode
registrujeme jakoukoliv klávesu, ale můžeme v podmínkách testovat e.keyCode

Výpis čísla klávesy pomocí metody trace:

trace(e.keyCode);

Testování zmáčknutí konkrétní klávesy

if(e.keyCode==32) {
co se má vykonat;
}

Událost zmáčknutí klávesy KeyEvent.KEY_DOWN se spustí pouze jednou, samotné držení klávesy dole nemá žádnou vlastní událost.

Pokud tedy chceme, aby se něco vykonávalo dokud je klávesa dole, můžeme využít událost Event.ENTER_FRAME a pomocné proměnné typu Boolean. Když se klávesa zmáčkne (KEY_DOWN), nastavíme proměnnou na hodnotu true a zpět na hodnotu false ji nastaví až zvednutí klávesy (KEY_UP). Uvnitř funkce, kterou spouští událost ENTER_FRAME pak můžeme pomocnou promněnnou testovat. Pokud je proměnná true, něco se vykonává.

var spust:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, klavesaDole);
stage.addEventListener(KeyboardEvent.KEY_UP, klavesaNahore);
stage.addEventListener(Event.ENTER_FRAME, testuj);

function klavesaDole(e:KeyboardEvent){
 spust = true;
}

function klavesaNahore(e:KeyboardEvent){
 spust = false;
}
function testuj(e:Event){
 if(spust){
           // co se má vykonat
           }
}

Posted

in

by

Tags: