Tato lekce je poslední z těch, které vysvětlovaly úplné základy, dočtěte se zde o funkcích a jak je používat...
Funkce
Funkce umožnují seskupit příkazy a později je vykonat. Jedná se o blok kódu, který se jako obvykle ohraničuje složenými závorkami { }. Pokud nevytváříte pouze jednoduchou animaci, tak se bez funkcí určitě neobejdete. Definice se provádí příkazemfunction
a vypadá takhle:
function nazev_funkce(){
příkazy
.
.
.
}
Jak jde z ukázky vidět, každá funkce má svůj název, kterým ji potom budeme volat. Za názvem jsou kulaté závorky, do nich se píší parametry (viz níže), i když jsou prázdné, musí tam být. Zde je jednoduchá ukázka funkce:
function pozdrav(){
trace("Ahoj,");
trace("Jak se máš?");
}
Když si tento příklad spustíte, zjistíte, že se nic nestane, to protože funkce nebyla zavolána, uděláte to zapsáním jména s kulatými závorkami: nazev_funkce();
priklad_61.fla
function pozdrav(){
trace("Ahoj,");
trace("Jak se máš?");
}
mc.onRelease = function(){
pozdrav();
}
mc.onRollOver = function(){
pozdrav();
}
Na začátku je definice funkce pozdav, která má pouze dva příkazy, spustí se když uživatel klikne, nebo najede myší na MovieClip mc, říká se tomu zavolání funkce. Z toho plyne jedna z výhod funkcí - místo psaní stejného kusu kódu na ruzná místa stačí definovat si funkci a potom ji volat, vyplatí se to dvojnásob, pokud je potřeba v daném kusu kódu něco změnit, protože s použitím funkcí stačí upravit definici funkce, namísto vyhledávání a uprávy všech míst. Sejného výsledku s větší námahou byste dosáhli takto:
mc.onRelease = function(){
trace("Ahoj,");
trace("Jak se máš?");
}
mc.onRollOver = function(){
trace("Ahoj,");
trace("Jak se máš?");
}
Uvnitř funkcí můžeme dokonce volat další funce, teď se naskýtá otázka jak probíhá běh programu. Možná by to zavádělo k tomu, že zavoláním funkce se běh programu rozdvojí a bude probíhat na dvou místech zároveň, opak je pravdou. Pokud zavoláme funkci, běh stávající funkce se pozastaví a proběhne volaná funkce, tak jak je to znázorněno na obrázku 6.1.
priklad_62.fla
function funkce_2(){
trace(2);
}
function funkce_1(){
trace(1);
funkce_2();
trace(3);
}
funkce_1();
obr. 6.1
Parametry
Funkce jsou sice užitečné už s tím, co jsme si řekli, ale dokáží toho ještě víc. Úplně na začátku lekce jsem se zmínil o parametrech, které se zapisují do závorek. Parametry nejsou nic jiného, než proměnné předávané volané funkci. K čemu je to dobré? Parametry funkci předáváme proměnné, s kterými vykoná různé operaceze použít i proměnné, které předáme pouhým uložením do prostoru MovieClipu a potom pužitím ve funkci, ale to bych určitě nedoporučoval, definováním parametrů funkci jasně udáváme, co funkce potřebuje k jejímu vykonání.
priklad_62.fla
function secti(a,b){
trace(a+b);
}
secti(5,6);
//Vypíše 11
Neefektivně by to šlo řešit tímto způsobem, ale jak se později dozvíte, tím bychom zahodili jednu podstatnou výhodu, kterou nám funkce přinášejí:
function secti(){
trace(a+b);
}
a = 5;
secti();
Příkaz return
Poslední částí je vrácení hodnoty, provádí se příkazem return. Každá funkce může vrátit proměnnou - výsledek, boolean úspěšnosti atd. Return může být v každé funkci pouze jednou, protože jeho provedením se ukončí.
function secti(a, b) {
return a+b;
}
trace( secti(5, 6) );
//vypíše 11
c = secti(5, 6);
//uloží do proměnné c výsledek 11
Díky return vrací funkce výsledek, se kterým lze dále pracovat. S funkcemi můžete docílit toho, že si celý program rozdělíte na menší samostatné části, u kterých ani nemusíte vědět co se děje uvnitř, ale zajímá vás pouze vstup (parametry) a výstup (return), to je velmi užitečné při běžných i rozsáhlejších projektech.
Vestavěné funkce
Vestavěné funkce jsou funkce, které jsou přístupně automaticky, nemusíte je definovat, patří k nim napříkad funkce pro kreslení z minulého dílu . Vestavěných funkcí už je v AS 2.0 docela málo, protože se téměř vše převedlo na metody objektů (v dalších dílech), nechávají se tam hlavně kvůli kompatibilitě se staršími verzemi.Na závěr
V tomto díle jsme dokončili základy ActionScriptu. Teď bych chtěl napsat pár praktických dílů, ve kterých použijeme to, co jsme se již naučili. Poté se podíváme na OOP a další věci z této oblasti.ÚKOL Vytvořte program, který přidá po kliknutí na obrázek předmětu (libovolného), do košíku zboží. Musí to být řešené přes funkci a parametry, košík může být dynamic text. Takže takový malý e-shop.