Události v AS3 , přidávání a ubírání posluchačů událostí, cyklus zpracování událostí, target a current target.
Rozdělení událostí podle typu:
- události myši
- události klávesnice
- události snímků
- události načítání souborů
- události objektů (např. MovieClip, Timer,…)
importujeme celý balíček daného typu:
import flash.events.MouseEvent;
Události myši:
- CLICK – zmáčknutí a puštění myši
- DOUBLE_CLICK- dvojité kliknutí
- MOUSE_DOWN – zmáčknutí myši
- MOUSE_UP – puštění myši
- MOUSE_OVER – najetí myši nad objekt (reaguje i na objekty uvnitř MovieClipu – další MovieClipy, tlačítka…)
- MOUSE_OUT – sjetí myši z objektu (reaguje i na objekty uvnitř MovieClipu – další MovieClipy, tlačítka…)
- MOUSE_MOVE – pohyb myši nad objektem
- MOUSE_WHEEL – pohyb kolečkem myši
- ROLL_OUT – sjetí myši z objektu (bere MovieClip jako jeden objekt, ignoruje vnitřní rozdělení)
- ROLL_OVER – najetí myši nad objekt (bere MovieClip jako jeden objekt, ignoruje vnitřní rozdělení)
Události kláves: KeyboardEvent
- 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
Události snímků: Event
- ENTER_FRAME – při vstupu, vykreslení snímku
- Event – vytvořená pomocí AS, dá se generovat pomocí dispatchEvent
Události zachytávají posluchače EventListener
přidání posluchače:
objekt.addEventListener(MouseEvent.CLICK, spuštěnáFunkce);
odebrání posluchače:
objekt.removeEventListener(MouseEvent.CLICK, spuštěnáFunkce);
Cyklus zpracování události
- 1. registrační fáze – tato fáze reprezentuje start události na nejvyšší úrovni objektů (např. u událostí myši nebo kláves je na nejvyšší úrovni scéna), událost se pak zpracovává dál na úroveň zobrazených objektů, až dosáhne objektu nejnižší úrovně
(příklad: Klikáme na nohu postavy. Tato fáze reprezentuje kliknutí a zpracování události na scéně a pak postup přes tělo, k samotné noze, kde vstupuje do cílové fáze.) - 2. cílová fáze – tato fáze se vždy týká jen jednoho cílového objektu, který je na nejnižší úrovni. Spustí se všechny posluchače události, které jsou uvnitř cílového objektu. Také získáváme informaci o tom, který objekt je e.target.
(příklad: Tato fáze se zpracovává jen na úrovni nohy.) - 3. probublávací fáze – fáze události se vrací v hierarchii zpět na nejvyšší úroveň (např. scéna), získáváme informaci o objektu na vyšší úrovni – e.currentTarget a spouští se všechny posluchače v úrovních nad cílovým objektem
Target a CurrentTarget
- target – odkazuje na nejnižší úroveň, na vnořené MovieClipy
- currentTarget – odkazuje na nejvyšší úroveň, na kontejner (MovieClip), který obsahuje vnořené objekty (např. registruje celé tělo i když se kliklo jen na ruku) – operuje na úrovni, kde je připojený posluchač události