- objekt
- prvky kódu, které mají vlastnosti, můžeme je identifikovat pomocí jména instance, můžeme je měnit a ovládat pomocí skriptu, mají metody, kterými mohou vykonávat různé úkony
- jednotlivé prvky programu
- jsou součástí vytvořené aplikace (objekty na scéně, nebo deklarované proměnné)
- třída
- skupina nebo sada objektů s podobnými vlastnosti a schopnostmi
- dají se třídit do balíčků
- např. MovieClip
- jsou uložené v knihovně (nebo interních knihovnách programu, které je potřeba importovat)
- Příklad: Každý movieclip uložený v knihovně s novou grafikou je také nová třída!
Typy tříd
- předvytvořené: MovieClip, Button, Sprite, TextField, Rectangle, Loader, Tween…
- vlastnosti – alpha, x, y, rotation, name,…
- metody – funkce uvnitř třídy – stop(), play(), gotoAndStop()…
var objekt:MovieClip = new MovieClip() - vytvoří nový objekt patřící ke třídě MovieClip
Co třídy umí:
- umí dědit vlastnosti z rodičovských tříd
- mohou přidávat nové vlastnosti již existujícím třídám (např. rozšířit movieClip)
Hierarchie tříd potomků třídy DisplayObject:
Externí třídy AS
- Tyto třídy jsou umístěné mimo pracovní soubor aplikace, mají svůj vlastní soubor s koncovkou .as
- Tento typ třídy můžeme používat opakovaně, připojit ho k více objektům a tím tyto objekty tzv. rozšiřovat
Tvorba externí třídy
Externí třídu můžeme vytvořit dvěma způsoby:
- Můžeme ji vytvořit jako nový dokument přes nabídku nového souboru
- Nebo ji můžeme vytvořit při propojení s existující třídou MovieClip přes vlastnosti objektu v knihovně
- Ve vlastnostech musíme kliknout na položku „další volby“ a zde vybrat volbu „exportovat pro Actionscript„. Tím se vytvoří třída, která bude obsahovat vše uvnitř časové osy tohoto movieclipu (grafiku, animace, kód, atd.). V tento moment má třída zatím jen jméno třídy (napsané v kolonce Třída). Základní třída označuje rodičovskou třídu, tzn. tu, kterou touto novou třídou rozšiřujeme. Pokud chceme k nové třídě přidat i externí ActionScript, musíme kliknout na ikonu editace (tužku) u položky Třída.
Po vytvoření třídy se tento nový dokument otevře v novém okně
Uložení třídy
Třída musí být uložena pod stejným názvem, jako je její název public class!
Příklad: Třída z obrázku nahoře musí být uložena pod názvem objekt.as
Struktura externí třídy
- Všechny třídy jsou umístěny v balíčcích „package„. Základní balíček nemá jméno, znamená to, že tento soubor je uvnitř stejné složky jako soubor .fla, ke kterému je připojená.
- Před začátkem samotné třídy musí být importy knihoven všech objektů, vlastností, metod atd. z jiných knihoven, aby je tato třída mohla používat
- Pak začíná samotná třída. Její jméno MUSÍ BÝT STEJNÉ jako jméno souboru a její označení tak, jak je připojená k objektu v knihovně.
- Uvnitř třídy následuje konstruktor – to je funkce, která se spustí před vykreslením instance. Konstruktor plní stejnou funkci jako kód, který by byl napsaný přímo na scéně. Sem píšeme všechny posluchače a počáteční nastavení souboru.
- Pokud bychom ve třídě používali nějaké proměnné, musíme je napsat ještě před konstruktor! Kód se vykonává postupně jako sekvence, pokud by tedy proměnné byly napsané za konstruktorem (ve kterých by se např. nastavovala jejich počáteční hodnota), konstruktor by je neznal a aplikace by nefungovala. Proměnné nesmíme vytvořit uvnitř konstruktoru, pokud je chceme používat i v dalších funkcích. Proměnné totiž mohou být používány jen uvnitř části kódu, kde byly vytvořeny. Pokud by byly vytvořeny v konstruktoru, jiné funkce by se k nim už nemohly dostat.
- Za konstruktor budeme psát další funkce, které budou např. spouštět posluchače přidané v konstruktoru.
Struktura graficky
Zásady psaní kódu ve třídách
Pokud chceme adresovat objekt, na který je třída připojená, použijeme formulaci this
Přidání posluchače události
Pokud chceme přidat jakékoliv události, musíme je nejprve importovat do balíčku!
import flash.events.MouseEvent;
Do konstruktoru přidáme posluchače:
this.addEventListener(MouseEvent.CLICK, mojeFunkce);
Odebrání posluchače události
Tam, kde chceme posluchače odebrat (např. uvnitř nějaké funkce) přidáme kód
this.removeEventListener(MouseEvent.CLICK, mojeFunkce);
Změna vlastností objektu
Opět k objektu přistupujeme přes formulaci this
// například, kdybychom chtěli, aby náš objekt měl na začátku 50% průhlednost this.alpha = 50;
Modifikátory public a private
U funkcí, proměnných a dalších typů dat vytvořených uvnitř třídy určujeme, jestli budou používané jen uvnitř třídy, potom mají nastavený modifikátor private. Pokud chceme tyto prvky třídy ovládat ze scény (nebo jiné třídy), musíme jim nastavit modifikátor public.
// například funkce, která by objekt spustila při kliknutí public function spust(e:MouseEvent){ this.play(); }