Otázka 8 2016/2017

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

Posted

in

by

Tags: