Testování stisku klávesy v Macromedia FLASH 5

28. května 2001

Pokud budete chtít vytvářet ve FLASH jakoukoli hru, pravděpodobně brzy narazíte na problém, jak testovat stisk klávesy. Ve FLASH 5 již můžete testovat stisk klávesy pomocí objektu Key(), jehož správné použití si dnes na příkladu ukážeme.

Oproti FLASH 4 je testování stisku klávesy ve FLASH 5 mnohem efektivnější a při správném použití objektu "Key()" již nedochází k "zadrhávání" při posouvání objektu klávesou. Pokud stisknete jakoukoli klávesu, odešle se do systému její kód, pod kterým ji identifikuje. Pamatovat si všechny kódy není možné a proto naleznete jejich seznam v helpu k programu Macromedia FLASH 5. Pokud se nacházíte v programu, vyvolejte nápovědu (stiskněte klávesu F1), v levém horním rohu vyberte "ActionScript Reference" a v seznamu odkazů na levé straně klikněte na "Keyboard Keys and Key Code Values". Zde si můžete najít kódy všech kláves, včetně funkčních, nacházejících se na klávesnici.

Nyní si tedy vytvoříme jednoduchý příklad, abychom si demonstrovali použití objetu "Key()". Vytvořte si novou scénu o velikosti 300×150 px (CTRL+M) a nastavte počet snímků za sekundu na 18. Příklad bude obsahovat pouze jednu důležitou vrstvu "content", v druhé vrstvě "background" se bude nacházet pouze nadpis a nemá na funkčnost příkladu vliv. Příklad bude obsahovat pouze jeden snímek, ve kterém budou umístěny tři Movie Clipy, z nichž každý bude obsahovat jedno písmeno.

Pro příklad jsem zvolil, že písmena, která budou reagovat na stisk klávesy budou "k", "e" a "y". Napište si tato tři písmena do scény každé zvlášť. Šipkou označte písmeno "k" a uložte jej do knihovny jako Movie Clip (F8) a nazvěte jej "k". Obdobně uložte do knihovny i zbývající písmena "e" a "y" a pojmenujte je.

Nyní se přepněte do editace symbolu "k". V tomto symbolu vytvoříme malou animaci, kdy se objekt zvětší na 300% a poté se zase zmenší na původní velikost. Tato animace bude spuštěna právě při stisku klávesy "k". Písmeno "k" si tedy označte a uložte do knihovny symbolu jako Movie Clip a pojmenujte jej například "s-k". Do snímků 5 a 10 vložte klíčové snímky (F6) a mezi nimi vytvořte Motion Tweening (paletka Frame). Jen pro větší efekt nastavte "Easing" mezi snímky 1-5 na hodnotu "-100" a mezi snímky 5-10 na hodnotu "+100". Přepněte se na snímek 5, označte písmeno "k" a zvětšete jej na 300% (CTRL+ALT+S) a můžete jej i trochu natočit. Aby se tato animace neustále neopakovala je třeba vytvořit novou vrstvu v tomto symbolu a do prvního snímku dát akci:

stop ();

Stejně jako u symbolu "k" vložte malé animace i do symbolů "e" a "y". Do knihovny symbolů Vám tedy přibudou ještě symboly "s-e" a "s-y". Jakmile máte všechny tři symboly včetně animací vytvořeny, přepněte se zpět do hlavní scény a tyto symboly v  paletce "Instance" pojmenujte "k", "e" a "y".

Nyní vložíme do každého symbolu akci, která bude zajišťovat kontrolu stisknuté klávesy. Klepněte na symbol "k" pravým tlačítkem a z nabídky zvolte "Actions". Do okna nyní vložte následující akce:

onClipEvent (keyDown) {
if (Key.getcode() == 75) {
_root.k.gotoAndPlay(2);
}
}

Tato akce je aktivována při stisku jakékoliv klávesy a vyjadřuje podmínku, že pokud je stisknuta klávesa s kódem "75" (což je písmeno "a"), pak se Movie Clip "k" spustí od druhého snímku. Podobné akce nadefinujte i pro symbol "e" :

onClipEvent (keyDown) {
if (Key.getcode() == 69) {
_root.e.gotoAndPlay(2);
}
}

a také pro symbol "y". Ve skriptu se mění jen kód klávesy a název Movie Clipu:

onClipEvent (keyDown) {
if (Key.getcode() == 89) {
_root.y.gotoAndPlay(2);
}
}

Tím je celý příklad prakticky hotov a vy máte možnost si jej otestovat stiskem kláves CTRL+ENTER a následným stisknutím kláves "k", "e" nebo "y". Pokud máte zájem o bližší prozkoumání zdrojového FLA souboru, můžete si jej stáhnout.

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *