Funkce

Slouží k zaobalení bloku kódu, který pak můžeme opakovaně použít. Dobře napsaná funkce je univerzální – dá se použít (zavolat) kdykoliv je potřeba.

  • Funkce bez parametru
  • Funkce s parametrem
  • Funkce se dvěma parametry

Funkce bez parametru

  • nejjednodušší typ funkce
  • Musíme v těle funkce nastavit, jaký objekt tato funkce ovlivňuje (např. pokud funkce má rotovat nějaký objekt, musíme v jejím těle přímo napsat, který).
	//zápis funkce
	function jménoFunkce():void {     
		//Tělo funkce
	}
 
	//volání funkce - aby se vykonala
	jménoFunkce();

příklad:

	function posunAOtoc(mc:MovieClip):void {     
		muj_mc.x +=10;  //posune pozici movieclipu doprava muj_mc
		muj_mc.rotation +=10;	//rotuje movieclip muj_mc kolem jeho osy
        }
	//volání funkce - bez volání se funkce nespustí
	posunAOtoc();
	posunAOtoc(); //spustí funkci znovu - znovu posune x a rotaci (tj. x bude +20, rotace také)

Funkce s parametrem

  • Tento typ funkce píšeme s jménem parametru a datovým typem parametru – funkce se pak volá s hodnotou parametru.
  • (Tuto funkci můžeme použít pro víc objektů současně bez nutnosti, aby se všechny cílové objekty vypisovaly do jejího těla – cíl nastavíme při volání funkce. Tomu uzpůsobíme typ parametru. Pokud má funkce pracovat s Movieclipy, nastavíme parametr:MovieClip atp.)
  • Parametr tedy funguje jako dočasná proměnná – při napsání funkce stanovíme proměnnou, její hodnotu pak nastavujeme při volání funkce.

– více užívaný typ funkce

	function jménoFunkce(jmenoParametru1:Typ):void {     
		//Tělo funkce
	}
	//volání funkce - v závorce řekneme hodnotu parametru
	jménoFunkce(hodnotaParametru1);

příklad pro funkci se stejnými vlastnostmi jako měla předchozí, ale funkce není nastavená pro určitý movieclip – konkrétní cílový movieclip nastavíme až v parametru:

	function posunAOtoc(mc:MovieClip):void {     
		mc.x +=10;
		mc.rotation +=10;	
        }
	//volání funkce
	posunAOtoc(Muj_mc); // posune a otočí instanci MovieClipu s názvem Muj_mc
	posunAOtoc(Cizi_mc); // posune a otočí instanci MovieClipu s názvem Cizi_mc

Funkce se dvěma parametry

	function jménoFunkce(parametr1:Typ, parametr2:Typ):void {     
		//Tělo funkce
	}
	//volání funkce
	jménoFunkce(par1,par2);

příklad

Funkce sečti – vypíše součet dvou čísel – parametrů typu Number – „cislo1“ a „cislo2“.

	function secti(cislo1:Number, cislo2:Number):void {     
		trace(cislo1+cislo2); 
	}
	//volání funkce
	secti(2,4); // cislo1 =2, cislo2 = 4
//v outputu(vytupu) by se vypsalo cislo 6

Funkce s návratovou hodnotou

  • nejkomplexnější typ funkce, může mít více parametrů různých datových typů
  • nastavuje se u ní datový typ návratové proměnné
  • končí tím, že obsahuje klíčové slovo „return“
  • tato funkce se dá sama o sobě použít jako proměnná
	function jménoFunkce(parametr1:DatovýTyp,parametr2:DatovýTyp):datovyTypNavratovePromenne {     
		//Tělo funkce
		return hodnotaNavratovePromenne
		}	
		//volání funkce
		jménoFunkce(parametr1,parametr2);

Příklad pro funkci sečti s parametry typu Number cislo1 a cislo2. Chceme aby návratová proměnná této funkce byla taky číslo.

	function secti(cislo1:Number,cislo2:Number):Number {     
		//Tělo funkce
		return cislo1+cislo2
		}	
		//volání funkce
	trace (secti(2,4)); //vypíše 6
	trace (secti(2,4)*secti(1,5)); //s funkcí se dá pracovat jako s proměnnou - vypíše 36

Trace

vypíše nám jakoukoliv hodnotu jako text v outputu

Příklad

	trace("text")//v závorce se vždy píše, co má trace vypsat - vypíše text
	trace(2)//- vypíše 2
        trace(vek)//- vypíše hodnotu proměnné vek

Příklady funkcí

funkce bez parametru

//x souřadnice roste doprava, klesá doleva
//Y rouřadnice roste solu, klesá nahoru
 
function posunKure(){
	kure1_mc.x+=10; 	
	}
 
posunKure();

funkce s parametrem

//x souřadnice roste doprava, klesá doleva
//Y rouřadnice roste solu, klesá nahoru
 
function posunKure(jmenoKurete:MovieClip){
   jmenoKurete.y-=1;
	}
 
posunKure(kure1_mc);
posunKure(kure2_mc);

funkce s dvěma parametry

//rotace +1 otáčí po směru hodinových ručiček
//rotace -1 otáčí proti směru hodinových ručiček
function posunKure(jmenoKurete:MovieClip,jmenoKurete2:MovieClip){
   jmenoKurete.rotation-=2;
    jmenoKurete2.rotation+=2;
	}
 
posunKure(kure4_mc,kure5_mc);

 


Posted

in

by

Tags:

Comments

Napsat komentář