Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
-
30. září 2024
-
4. října 2024
-
14. listopadu 2024
-
11. prosince 2024
Go verze
FLASH 5 - reversní pohyb
14. srpna 2001, 00.00 | Častým dotazem bývá, zda lze přehrávat ve Flashi i nazpět. Flash nemá speciální funkci pro přehrávání nazpět (pokud nepočítáme prevFrame), ale lze toho dosáhnout akcemi, které si ukážeme v jednoduchém článku určeném spíše pro začátečníky.
Častým dotazem bývá, zda lze přehrávat ve Flashi i nazpět. Flash nemá speciální funkci pro přehrávání nazpět (pokud nepočítáme prevFrame), ale lze toho dosáhnout akcemi, které si ukážeme v jednoduchém článku určeném spíše pro začátečníky.
Začneme jako tradičně popisem tvorby od začátku, aby to pochopil i úplný začátečník. Velikost jeviště (CTRL M) nastavíme na 200 x 200 px, 12 snímků za sekundu (Frame Rate) a pozadí (Background Color) dle libosti. Vytvoříme nový grafický symbol (CTRL F8) například čtverec (50 x 50 px), pojmenujeme jako ctverec, ten umístíme do nového klipu pohyb, vytvoříme jednoduchou animaci - např. zvětšení čtverce pomocí tween - motin v délce 40 framů a v tomto framu zvětšíme ctverec na 150 x 150 px. Vytvoříme ještě další klip, který bude sloužit pro reversní akci a nazveme ho revers, přetáhneme na scénu. Zeditujeme tento klip a vložíme do něj klip pohyb, přiřadíme mu instanci pohyb. Klip pohyb bude tedy v postavení dcery vůči rodičovskému klipu revers.
revers |
frame1: x = pohyb._totalframes; |
frame2: pohyb.gotoAndStop (x); |
frame3: x--; if (x >0) { gotoAndPlay (2); } |
Operátor --
Syntaxe: --vyraz nebo vyraz--
Argument: vyraz je proměnná, číslo,
element pole (array), nebo vlastnost objektu
Popis: --vyraz se nazývá pre-dekrement, před
vrácením hodnoty je provedeno snížení vyrazu o
1; vyraz-- se nazývá zase post-dekrement, sníží
vyraz o 1 a vrátí počáteční hodnotu
Příklad:
--x zmenší x ke 2 (x - 1 = 2) a vrací výsledek
jako y
x = 3;
y = --x
x-- zmenší x ke 2 (x - 1 = 2) a vrátí originální
hodnotu (x = 3) jako výsledek y
if x = 3
y = x--
Stejného cíle dosáhneme pokud neumístíme klip pohyb (přidáme
instanci pohyb) do klipu revers, ale oba přetáhneme na jeviště a změníme
akce v klipu revers následovně:
revers |
frame1: x = _root.pohyb._totalframes; |
frame2: _root.pohyb.gotoAndStop (x); |
frame3: x--; if (x >0) { gotoAndPlay (2); } |
Ve třetím příkladu oba klipy přetáhneme na jeviště, v pohyb přidáme na
poslední snímek akci stop(); a akce v klipu revers změníme
následovně (obou přiřadíme instance podle názvů):
revers |
frame1: _root.pohyb.gotoandplay(1); stop (); |
frame2: play (); |
frame3: _root.pohyb.prevFrame(); gotoAndPlay (2); |
Vytvoříme tlačítko (CTRL F8) a pojmenujeme ho zpet, přetáhneme
na scénu a přidáme mu akci:
zpet |
on (rollOver) { _root.revers.gotoandplay(2); } on (rollOut) { _root.revers.gotoandstop(1); } |
A výsledek:
Po najetí myši nad tlačítko bude animace přehrávána zpět (pomocí akcí) a po opuštění je přehrávána normálně od začátku (bez použití akcí) a tím je dána jedna malá chybička - po rychlém přejetí přes tlačítko se animace začne přehrávat znovu, to odstraníme přidáním dalších akcí. Princip bude takový, že poprvé (bez přejetí myši) bude klip pohyb přehrán normálně (bez použití akcí), v okamžiku umístění myši nad tlačítko bude animace přehrávána reversně a po opuštění bude přehrávána normálně, ale pomocí akce nextframe.
revers |
frame1: _root.pohyb.gotoandplay(1); stop (); |
frame2: _root.pohyb.nextFrame(); |
frame3: stop (); gotoAndPlay (2); |
frame4: play (); |
frame5: _root.pohyb.prevFrame(); gotoAndPlay (4); |
Akce pro tlačítko zpět:
zpet |
on (rollOver) { _root.revers.gotoandplay(4); } on (rollOut) { _root.revers.gotoandplay(2); } |
Zdrojové soubory ke všem příkladům si můžete stáhnout tady.