Uživatelské nástroje

Nástroje pro tento web


vyuka:podminky_if_-_flash

Podmínky - flash

Velmi jednoduchý způsob, jak ovládat děj pomocí actioncriptu. Vykoná nějakou funkci, jen pokud je splněná určitá podmínka. Např. lyžař pojede vlevo, jen pokud je cedule otočená doleva, jinak pojede vpravo.

Podmínka (if)

Podmínka (if) je nejednodušší z podmínek. Pokud je splněná podmínka, něco se vykoná. (Pokud podmínka splněna není, nevykoná se nic.)

Způsob zápisu:

if (Podmínka) {
// co se má vykonat pokud je podmínka splněna
}

Podmínka (if - else)

Pokud je splněná podmínka, něco se vykoná. Pokud není splněna, vykoná se něco jiného.

Způsob zápisu:

if (Podmínka) {
// co se má vykonat pokud je podmínka splněna
}
else {
// co se má vykonat pokud podmínka neplatí
}

Podmínka (if1 - else if2 - else)

Způsob zápisu:

if (Podmínka1) {
// co se má vykonat pokud je podmínka 1 splněna
}
else if (Podmínka2) {
// co se má vykonat pokud je podmínka 2 splněna
}
else {
// co se má vykonat pokud podmínka 1 ani podmínka 2 neplatí
 
}

Co může být podmínka?

Jakýkoliv logický výraz. Můžeme porovnávat, hodnoty proměnné.

Operátory v podmínkách

> //je větší než
=> //je rovno nebo větší než
< //je menší než
=< //je rovno nebo menší než
== //je rovno
!= //je různé, nerovná se
 
Vždy je definovaná levá a pravá strana
 
Např.
 
var vek:Number;
vek = "18";
 
if stav > "18" {
pristup.gotoAndPlay("povolen");
}
else {
 
pristup.gotoAndPlay("zakazan");}
 
 
 
var stav:String;
stav = "vlevo";
 
if stav == "vlevo" {
lyzar_mc.gotoAndPlay("jedeVlevo");
}
else {
 
lyzad_mc.gotoAndPlay("jedeVpravo")}

Operátory při práci s dvěma a více podmínkami

|| //nebo - je-li splněna podmínka 1 nebo podmínka 2, funkce se vykoná
&& //zároveň - jsou-li splněny obě podmínky, funkce se vykoná
 
Např:
//jestliže  je splněna podmínka 1 a zároveň podmínka 2 
if (Podmínka 1) && (Podmínka 2){ 
        // co se má vykonat pokud je podmínka splněna
        }
else {
        // co se má vykonat pokud podmínka neplatí
        }
//jestliže  je splněna podmínka 1 a zároveň podmínka 2 
 
//jestliže  je splněna podmínka 1 nebo podmínka 2 
if (Podmínka 1) || (Podmínka 2){ 
        // co se má vykonat pokud je podmínka splněna
        }
else {
        // co se má vykonat pokud podmínka neplatí
        }
//jestliže  je splněna podmínka 1 a zároveň podmínka 2

Vnořené podmínky

Podmínka v sobě může mít jakýkoliv kód, i další podmínku. Podmínky mohou být takto hieraticky vložené.

Např.

if (Podmínka) {
      if (Podmínka) {
            // co se má vykonat pokud je podmínka splněna
            }
      else {
            // co se má vykonat pokud podmínka neplatí
            }
      }
else {
      // co se má vykonat pokud podmínka neplatí
      }

Příklad: Podmínka (if)

Pro přehrání obsahu potřebujete Adobe Flash Plugin.

zdrojový soubor: podminky_if.zip

Máme dva movieclipy - šipku, která se otáčí - sipka_mc, a lyžaře, který jede dolu podle směru šipky - lyzar_mc

Movieclip lyzar_mc má tři stavy

  • vlevo
  • vpravo
  • stoji

Movieclip sipka_mc má dva stavy

  • vlevo
  • vpravo

Uvnitř sipka_mc je na prvním framu vytvořená proměnná smerSipky(typu String), pomocí které určíme, v jakém směru šipka ukazuje.

var smerSipky:String;
smerSipky = "vlevo";

V dalším stavu(vpravo) změníme proměnnou na „vlevo“:

smerSipky = "vpravo";

Na tuto proměnnou se později ptáme v podmínkách:

if(sipka_mc.smerSipky=="vlevo")

Je třeba psát nejprve jméno instance movieclipu, ve které se tato proměnná nachází, jinak ji flash nebude schopný najít:

nazevInstanceMovieclipu.jmenopromenne

Kód na hlavní scéně:

import flash.events.MouseEvent;
//na začátku je třeba movieclipy sipka_mc a lyzar_mc zastavit, protože samy v sobě němají stopku
sipka_mc.stop(); 
lyzar_mc.stop();
//při kliknutí na sipka_mc a lyzar_mc se spustí animace (šipka se otočí, lyžař jede)
sipka_mc.addEventListener(MouseEvent.CLICK,prehodSipku);
lyzar_mc.addEventListener(MouseEvent.CLICK,lyzarJede);
//funkce na otočení šipky
function prehodSipku (e:MouseEvent) {
	if(sipka_mc.smerSipky=="vlevo"){ //je-li šipka vlevo
		sipka_mc.gotoAndStop("vpravo"); //sipka_mc se přesune na frame s názvem "vpravo"
		} else { //Když neplatí první podmínka (to že je šipka vlevo), stane se:
		sipka_mc.gotoAndStop("vlevo"); //sipka_mc se přesune na frame s názvem "vpravo"
		}
		}
//funkce na rozjetí lyžaře		
function lyzarJede (e:MouseEvent) {
	if(sipka_mc.smerSipky=="vlevo"){ //je-li šipka vlevo
		lyzar_mc.gotoAndPlay("vlevo"); //lyžař jede vlevo
		} else { //když podmínka není splněna
		lyzar_mc.gotoAndPlay("vpravo"); //lyžař jede vpravo
		}
		}
vyuka/podminky_if_-_flash.txt · Poslední úprava: 2011/10/20 14:04 autor: verca