Skip to Content

Přidávání akcí v ActionScriptu 3.0

Minule jsme si v článku Adobe Flash-Interaktivní tlačítka popsali vytvoření interaktivních tlačítek v programu Adobe Flash CS3. Nyní zkusíme pomocí jazyka ActionScript přidat různé akce k chování objektů.
Začneme vytvořením vrstvy Akce, která se bude nacházet nad všemi vrstvami. Pod ní mohou být vrstvy obsahující například obrázek, který se objevuje do doby, než je soubor načten, vrstva s definovanou a pojmenovanou textovou oblastí pro načítání textových souborů či vrstva s našim vytvořeným tlačítkem, které můžeme v našem příkladu dvakrát zduplikovat a pojmenovat je např. a, b, c.

Vrstvy budou obsahovat tři snímky. Ve vrstvě Akce vybereme druhý snímek (nezapomeňte vrstvu vybrat) , a klepneme na něj levým tlačítkem myši. Z kontextové nabídky otevřeme panel Akce. Zde můžeme jednoduše zapisovat kód a jako výborná pomůcka se nám zde nabízí Skriptovací asistent. Panel nástrojů akce nám umožňuje rychlý přístup k základním prvkům jazyka ActionScript, které seskupuje podle kategorie. Můžeme zde vybrat všechny běžně používané třídy, metody, vlastnosti, atd...
Do druhého snímku zapíšeme příkaz, který slouží k tomu, aby se film v případě, že není zcela načten, mohl vrátit do snímku 1 :

if (this.bytesLoaded==this.bytesTotal) {
play();
} else {
gotoAndPlay(1);
}

Poté vybereme snímek 3 ve vrstvě Akce zde už můžeme zastavit přehrávání filmu.
Použijeme tedy akci stop, a začneme psát kód deklarací první proměnné s názvem "nazevsouboru", typu String (řetězec alfanumerických znaků) a přiřazení její první hodnoty:

stop();
var nazevsouboru:String = "text_a.txt";
var loader:URLLoader = new URLLoader();
var requestURL:URLRequest = new URLRequest(nazevsouboru);
loader.load(requestURL);
loader.addEventListener(Event.COMPLETE,completeload);

function completeload(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var pageText:String = loader.data;
this.stranka_txt.text = pageText;
}

a.addEventListener(MouseEvent.CLICK, aListener);
b.addEventListener(MouseEvent.CLICK, bListener);
c.addEventListener(MouseEvent.CLICK, cListener);

function aListener(event:MouseEvent):void {
loadFile("text_a.txt");
}

function bListener(event:MouseEvent):void {
loadFile("text_b.txt");
}
function cListener(event:MouseEvent):void {
loadFile("text_c.txt");
}

function loadFile(nazevsouboru:String):void{
requestURL.url = nazevsouboru;
loader.load(requestURL);
}

V první řadě je potřeba mít vytvořené tři textové soubory umístěné ve stejném adresáři, jejichž text se bude načítat do textové oblasti, kterou nesmíme zapomenout pojmenovat, zde v našem případě stranka_txt.
Na třetím řádku použijeme způsob načtení dat z externích souborů využitím třídy URLLoader a URLRequest. Objekt URLLoader stahuje všechna data a zpřístupňuje je ActionScriptu. Přidáním objektu typu URLRequest metodě load() ze třídy URLLoader dojde k zahájení stahování dat z URL - adresy.
Událost může být spuštěna např. stiskem tlačítka, najetím myši nad něj, koncem videosekvence atd....
Neméně důležitý je objekt typu EventDispatcher a různé posluchače událostí. Např. Event.COMPLETE sleduje načtení celého obsahu a poté se vykoná námi vytvořená funkce ve chvíli, kdy nastane tato událost.
U tlačítek je postup podobný. Použijeme dalšího posluchače událostí, který reaguje na stisk tlačítka myši, který je typu MouseEvent.CLICK.
Každému tlačítku nadefinujeme posluchače událostí a funkci, která se zavolá při klepnutí na tlačítko. (Všiměte si názvů tlačítek u funkcí).
A nakonec funkce LoadFile využije příslušné jméno souboru a aktualizuje dříve vytvořený ojekt URLLoader.