Výuka Flash (10.)

Rozhodovací konstrukce a cykly

V dnešním díle budeme pokračovat v poznávání ActionScriptu. Ukážeme si, co jsou to rozhodovací konstrukce a vysvětlíme si pojem cyklus.


Rozhodovací konstrukce

Častokrát budeme potřebovat provéstu v ActionScriptu akci, která se vykoná jen tehdy, pokud bude splněna určitá podmínka. Pomocí těchto rozhodovacích konstrukcí můžeme vytvořit komplexní aplikace, jenž budou reagovat na každou vzniklou situaci.


If

Umístění v knihovně: Actions -> Conditions/Loops.

Jedná se o základní rozhodovací konstrukci, kterou můžeme použít. V případě, ze výsledek vrátí hodnotu true (pravda), tak se provede kód uvnitř rozhodnovací konstrukce.

Můžeme nastavovat následující vlastnosti:

If

Jako příklady si můžeme uvést:


// Vytvoříme proměnnou x, která má hodnotu 20.
var x = 20;

// Rozhodovací konstrukce, která posoudí,
// zda hodnota proměnné x je rovna 20.
if (x == 20) {
    // Proveď nějakou akci
}

Jak si můžete všimnout, tak se jedná o základní srovnávací operátory (==, >=,<=,..), které určitě každý z nás zná.


Else

Umístění v knihovně: Actions -> Conditions/Loops.

V případě, že bude podmínka vracet hodnotu false (nepravda - podmínka nebude splněna) můžeme využít této alternativy, která zajistí provedení kódu.

Else

Jako příklady si můžeme uvést:


// Vytvoříme proměnnou x, která má hodnotu 20.
var x = 20;

// Rozhodovací konstrukce, která posoudí,
// zda hodnota proměnné x je rovna 20.
if (x == 20) {
    // Proveď nějakou akci (true)
} else {
    // Proveď nějakou akci (false)
}

Praktickou ukázku nalezneme v porovnávání věku:


// Vytvoříme proměnnou vek, která má hodnotu 20.
var vek = 20;

// Rozhodovací konstrukce, která posoudí,
// zda hodnota proměnné vek je rovna 20.
if (vek == 20) {
    // Má 20 let!
} else {
    // Nemá 20 let!
}

Jelikož hodnota proměnné je 20, tak bude proveden kód, který se nachází u komentáře // Má 20 let!.


Else if

Umístění v knihovně: Actions -> Conditions/Loops.

V případě, kdy budeme chtít například porovnat několik hodnot proměnné, můžeme použít tuto konstrukci.

Else if

Jako příklady si můžeme uvést:


// Vytvoříme proměnnou x, která má hodnotu 20.
var x = 20;

// Rozhodovací konstrukce, která posoudí,
// zda hodnota proměnné x je rovna 10, 20 a jiné hodnotě.
if (x == 10) {
    // Hodnota proměnné x je 10.
} else if (x == 20) {
    // Hodnota proměnné x je 20.
} else {
    // Hodnota proměnné x je jiná.
}



Switch

Umístění v knihovně: Actions -> Conditions/Loops.

Tato řídící struktura je velice podobná konstrukci If..Elseif...Else, můžete ji využít například tehdy, když budete chtít porovnat hodnotu nějaké proměnné.

Můžeme nastavovat následující vlastnosti:

Switch

Jednotlivé hodnoty pro porovnávání přidáváme za příkazem case, které jsou ukončeny příkazem break:

Switch

Při porovnávání můžeme také využít příkaz default, který zajistí vykonání zvolého kódu, když se nebude shodovat ani jedna hodnota (za příkazem default se neuvádí příkaz break):

Switch

Jako příklad si můžeme uvést konstrukci, která porovná hodnotu proměnné hodnota, a v případě že nebude vyhovovat žádná podmínka, tak se provede část uvedená za příkazdem default:

Switch

V okénku Output uvidíte výslednou část (výpis).


Cykly

Ne jednou nastane případ, kdy budete chtít, aby skript prováděl určitou akci dokud bude platit podmínka. V této situaci využijete cyklů, které tuto vlastnost umožňují.


While

Umístění v knihovně: Actions -> Conditions/Loops.

Cyklus while je jeden z nejpoužívanějších cyklů. Cyklus bude provádět zvolené příkazy do té doby, dokud bude podmínka rovna boolean hodnotě TRUE.

Můžeme nastavovat následující vlastnosti:

While

Na příkladě si ukážeme cyklus, který bude zvětšovat hodnotu proměnné x o 30 do té doby, dokud nebude hodnota proměnné x rovna 360.


// Vytvoříme proměnnou x, která má hodnotu 0.
var x = 0;

// Výsledný cyklus.
while (x <= 360) {
    x += 30;
}


Do while

Umístění v knihovně: Actions -> Conditions/Loops.

Cykly do-while a While jsou si velmi podobné, ale rozdíl je v tom, že podmínka je porovnávána až na konci skriptu. Díky této vlastnosti budou příkazy (akce) vykonány alespoň jednou.

Můžeme nastavovat následující vlastnosti:

Do while

Na příkladě si ukážeme cyklus, který bude zvětšovat hodnotu proměnné x o 30 do té doby, dokud nebude hodnota proměnné x rovna 360.


// Vytvoříme proměnnou x, která má hodnotu 0.
var x = 0;

// Výsledný cyklus.
do{
    x += 30;
}while (x <= 360) 


For

Umístění v knihovně: Actions -> Conditions/Loops.

Cyklus for se také řadí mezi jeden z nejpoužívanějších druhů cyklů. Na začátku provádění cyklu se určí (vyhodnotí) počáteční hodnota (Init). Následně se vyhodnotí podmínka (Condition) a pokud vrací (stejně jako u předešlých cyklů) hodnotu TRUE, provedou se příkazy (akce). Na konci každé iterace se provede poslední výraz (Next).

Můžeme nastavovat následující vlastnosti:

For

Na příkladě si ukážeme cyklus, který bude hodnotu proměnné x násobit o 30 do té doby, dokud nebude hodnota podmínky menší než 10.


// Vytvoříme proměnnou x, která má hodnotu 0.
var x = 0;

// Výsledný cyklus.
for (i=0; i<=10; i++) {
	x = i * 30;
}


For..in

Umístění v knihovně: Actions -> Conditions/Loops.

Tento cyklus je velice podobný cyklu foreach, který naleznete v jazycích jako je PHP, C#, atd. Pomocí toho cyklu můžeme procházet jednotlivé objekty a pole a vypisovat jejich vlastnosti a prvky.

Můžeme nastavovat následující vlastnosti:

For

Na příkladě si ukážeme tento cyklus, který "projde" všechny vlastnosti a vypíše je do okna pro ladění (debug).


// Vytvoříme objekt auto a nastavíme vlastnosti.
var auto = new Object();
auto.znacka = "Peugeot";
auto.rychlost = 190;
auto.cena = 200000;

// Výsledný cyklus.
for (prvek in auto) {
    trace(prvek+"-"+auto[prvek]);
}

Tento cyklus vypíše následující data:


cena-200000
rychlost-190
znacka-Peugeot


Break

Umístění v knihovně: Actions -> Conditions/Loops.

Příkaz break můžete využít tehdy, pokud budete z nějakého důvodu chtít ukončit provádění cyklu.


// Vytvoříme objekt auto a nastavíme vlastnosti.
var auto = new Object();
auto.znacka = "Peugeot";
auto.rychlost = 190;
auto.cena = 200000;

// Výsledný cyklus.
for (prvek in auto) {
	// V případě, že bude mít prvek hodnotu "rychlost", 
	// tak se činnost cyklu ukončí.
	if (prvek == "rychlost"){
		break;
	}
	trace(prvek+"-"+auto[prvek]);
}


Continue

Umístění v knihovně: Actions -> Conditions/Loops.

Příkaz continue můžete využít tehdy, pokud budete z nějakého důvodu chtít ukončit provádění aktuální iterace cyklu.


// Vytvoříme objekt auto a nastavíme vlastnosti.
var auto = new Object();
auto.znacka = "Peugeot";
auto.rychlost = 190;
auto.cena = 200000;

// Výsledný cyklus.
for (prvek in auto) {
	// V případě, že bude mít prvek hodnotu "rychlost", 
	// tak se činnost cyklu ukončí.
	if (prvek == "rychlost"){
		continue;
	}
	trace(prvek+"-"+auto[prvek]);
}


Pro tento díl to bude vše. V příštím dílu budeme pokračovat v ActionScriptu.

Petr Rympler