Cykly jsou v podstatě rozšířené podmínky. Cyklus můžete umístit kamkoliv - jak do časové osy, tak na symbol. Cykly provádějí sadu daných příkazů, dokud není jejich podmínka vyhodnocena jako false. Rozdíl mezi cyklem a prostou podmínkou je ten, že podmínka je vyhodnocena pouze jednou - pokud je true, vykonají se příkazy ve složených závorkách, pokud je false, podmínka se přeskočí.
Ovšem pokud je u cyklu podmínka true, vykonají se dané příkazy, ale program nepokračuje dále, nýbrž se vrací zpět na začátek cyklu a opět se vyhodnocuje podmínka. Pokud je true, opět se provede sada příkazů a celý cyklus se vrací zpět na začátek. Takto se to opakuje, dokud není podmínka vyhodnocena jako false.
Program Flash rozeznává dva typy cyklů. První z nich je cyklus while. Nejlépe tento cyklus vysvětlím na příkladu.
while (i<=350) { pole.text+=i + " "; ++i; } _rotation=25;
Takže po řádcích. Skript říká toto: Dokud (while) je proměnná "i" menší nebo rovna 350, dělej příkazy v závorce. Tzn. vepiš do pole proměnnou "i" a mezeru. Na dalším řádku pak přidej k "i" jedničku.
Takže cyklus jako první vyhodnotí podmínku v závorce. Pokud je pravdivá, provede příkazy, pokud je nepravdivá, pokračuje dále (příkaz _rotation). Z tohoto mj. logicky vyplývá, že cyklus while nemusí proběhnout ani jednou.
Pokud je ale podmínka vyhodnoce jako true, vepíše se do pole určené číslo (=proměnná "i") a zároveň se přičte jednička k "i". Cyklus ale nekončí, vrátí se na začátek a znova vyhodnotí podmínku. Takhle postupuje, dokud nebude podmínka false. Až nastane, příkazy se již neprovedou a program pokračuje dále (příkaz _rotation).
První, co vás patrně napadne je, co když podmínka nikdy nebude false. Tak v tom případě můžete otevřít láhev kvalitního sektu - podařilo se vám zacyklit program. Tudíž v každém cyklu musí být čítač cyklu (to je právě ta proměnná "i" v podmínce cyklu) a zároveň se musí s čítačem v cyklu pracovat (to je to osudové ++i, bez čehož by došlo k zacyklení).
A teď ještě jak bude cyklus proveden konkrétně. Proměnná "i" není nikde deklarovaná, tudíž první kolo se nic nestane, pouze se k "i" přičte a jedna a od teď už má "i" hodnotu 1. Druhé kolo. Vyhodnocuje se podmínka jestli je 1<=350. To je samozřejmě pravda, takže cyklus může běžet dál. Do pole se vepíše "1 " a poté se k "i" opět přičte jedna. Cyklus se vrací zpět.
Třetí kolo. Proměnná "i" má nyní hodnotu dva a tak vyhodnocuje podmínka 2<=350. To je stále pravda, takže cyklus pokračuje. Do pole se připíše "2 " a k "i" se opět přičte jedna. Cyklus se vrací zpět.
...
...
Trochu přeskočíme. Proměnná "i" má nyní hodnotu 351. Vyhodnocuje se podmínka 351<=350. To není pravda, takže cyklus nepokračuje, do pole se již nic nepřipíše. Cyklus skončil.
Dalším cyklem je for. Je velmi podobný cyklu while a vlastně všechno co uděláte přes while se dá naprogramovat přes for a naopak. Podívejte se na syntaxi:
for (i=1; i<=100; ++i) { if ((i%2)==0) { pole.text+=i + " "; } }
Takže popořadě. i=1; značí, kde má cyklus začít. Při prvním projetím cyklus bude mít "i" hodnotu jedna.
i<=100; je podmínka cyklu, která udává, jak dlouho se bude cyklus opakovat. Pokud bude tato podmínka true, budou provedeny příkazy cyklu. Pokud bude false, pokračuje se příkazy za cyklem.
++i; je obyčejný čítač cyklu, který se - namísto u while -zapisuje přímo do závorky.
Tyto tři hodnoty oddělujete středníkem, nikoliv čárkou, na to bacha. Pak už následují pouze příkazy cyklů - pokud bude po celočíselném dělení 2 proměnné "i" zbytek nula, vypíše to do textového pole hodnotu "i" (tzn., že to vypíše všechna sudá čísla do stovky).
Další praktičtější příklady na cykly: »Textové efekty nebo »Šipky