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 } }