U okviru ove lekcije obradićemo akcije kojima možemo kontrolisati puštanje filma u okviru glavnog Timeline-a, kao i filma u okviru MovieClip simbola.
Najvažnije akcije iz ove grupe su:
Akcija stop();
Kao što ste u radu sa Flash-om primetili, film koji pravite u Flash-u se ne zaustavlja u poslednjem frejmu, već se vraća na početak i ponovo prikazuje ceo film. To se zove Loop animacije, tj. neprestano ponavljanje filma.
Naravno da će vam biti potrebno da zaustavite film na kraju, i ne samo u poslednjem frejmu, već i u nekim specifičnim tačkama filma. Ako recimo pravite sajt koji u glavnom Timeline-u ima određene segmente koji predstavljaju sekcije sajta i poželite da zaustavite film u određenim ključnim frejmovima, to možete učiniti ovom akcijom.
Sintaksa je vrlo jednostavna:
stop();
i ne zahteva nikakve dodatne parametre.
Ovako upisana akcija u Actions panelu nekog ključnog frejma će zaustaviti glavu za čitanje na tom frejmu dokle god se ne aktivira neka druga akcija koja će ili pomeriti glavu za čitanje ili prebaciti glavu na neki drugi frejm.
Ukoliko želite da zaustavite animaciju unutar nekog MovieClip simbola, ne možete dodati akciju stop() na taj simbol, već morate „ući“ u simbol (editovati ga) i u Timeline-u tog simbola izabrati određeni ključni frejm i njemu dodeliti akciju stop().
Osim toga, ako imate neki MovieClip simbol na sceni, sa Instance Name-om kvadrat koji u sebi ima neku animaciju, sa glavnog Timeline-a možete zaustaviti animaciju u simbolu ako upotrebite Instance Name:
kvadrat.stop();
Akcija stop() može se nalaziti i u okviru nekog uslova, ali o tome u nekoj od narednih lekcija.
Akcija gotoAndStop()
Osim zaustavljanja glave za čitanje, možete poželeti da prebacite glavu za čitanje na neki drugi frejm i tu je zaustavite uz prikazivanje scene u tom trenutku.
Za tu namenu nam služi ova akcija čija je sintaksa:
gotoAndStop(brojFrejma);
Parametar brojFrejma upisujemo tako da pokažemo na koji frejm želimo da pomerimo glavu za čitanje. Vodite računa na kom nivou dodajete ovu akciju, jer ako je dodate na glavnom Timeline-u, brojFrejma se odnosi na glavni Timeline.
Ukoliko želite da kontrolišete glavni Timeline iz nekog MovieClip simbola, onda morate dodati akciju:
_root.gotoAndStop(brojFrejma);
Ovakvom akcijom ćete iz nekog MovieClip simbola poslati glavu za čitanje na određeni frejm glavnog filma (glavnog Timeline-a).
No, ukoliko sa glavnog Timeline-a želite da kontrolišete Timeline unutar nekog simbola koji ima Instance Name Kvadrat, unesite sledeći kod na neki Keyframe glavnog Timeline-a:
kvadrat.gotoAndStop(brojFrejma);
Na ovaj način možete iz bilo kog nivoa kontrolisati bilo koji Timeline. Samo je potrebno ispravno upisati putanju do tog simbola, odnosno njegovog Timeline-a.
Pored parametra brojFrejma, možemo tu upisati i naziv frejma ukoliko smo nekom ključnom frejmu dodelili ime. Jedina razlika je što je sada potrebno uneti taj parametar pod navodnicima:
gotoAndStop("prviFrejm");
Ukoliko niste upisali pravi naziv frejma, akcija neće raditi.
Osim parametra brojFrejma ili imeFrejma moguće je dodati i scenu na kojoj se nalazi taj frejm:
gotoAndStop("Scene 2", 15);
Ovako upisana akcija će skočiti na 15 frejm ne trenutno aktivne scene, već scene sa imenom "Scene 2".
Kreirajte animaciju kvadrata na glavnoj sceni, takvu da se kvadrat od prvog do petnaestog frejma pomera iz donjeg levog ugla u gornji desni ugao (po dijagonali), a zatim da se od šesnaestog do tridesetog frejma pomera na dole (u donji desni ugao).
U poslednjem (tridesetom) frejmu dodajte akciju:
gotoAndStop(15);
Ako testirate film, animacija bi trebalo da se odvija na sledeći način: najpre se kvadrat kreće dijagonalno ka gornjem desnom uglu, zatim se spušta u donji desni ugao, a onda skače nazad u gornji desni ugao i tu se film zaustavlja.
Akcija gotoAndPlay()
Ova akcija takođe pomera glavu za čitanje na određeni frejm filma, samo, za razliku od prethodne koja tu zaustavlja film, ova akcija pušta film od tog trenutka.
Sintaksa je slična, uz isti parametar:
gotoAndPlay(brojFrejma);
Takođe, možete koristiti i ime frejma, samo pod navodnicima:
gotoAndPlay("imeFrejma");
Na isti način, kao i kod prethodne akcije, moguće je kontrolisati unutrašnji Timeline nekog simbola pomoću njegovog Instance Name-a.
Akcija:
kvadrat.krug.gotoAndPlay(2);
će na glavnoj sceni pronaći simbol kvadrat, u njemu simbol krug i u njegovom Timeline-u skočiti u drugi frejm i odatle pustiti film.
Kao i kod prethodne akcije, moguće je dodati i parametar scene u okviru koje želimo da skočimo na neki frejm:
gotoAndPlay("Scene 2", 15);
Na ovaj način, film će biti pušten od 15. frejma na sceni pod nazivom Scene 2.
U prethodnoj vežbi promenite akciju gotoAndStop(15) u gotoAndPlay(15) i proverite rezultat testiranjem filma.
Trebalo bi da animacija najpre teče isto kao u prvom primeru, ali da se zatim vrati na frejm broj 15 i da ponovo pusti sekvencu od 15 do 30. frejma. Pošto nema akcije za zaustavljanje filma, animacija od 15-30 frejma će se ponavljati dok ne zatvorimo prozor.
Akcija play()
Akcija play() je suprotna akciji stop(). Dakle, dok akcija stop() zaustavlja puštanje filma, akcija play() vrši puštanje filma od tog trenutka gde je dodata.
Ali, pitate se čemu akcija play() kada se film pušta u svakom slučaju po otvaranju. Dakle, čim testiramo film, glava za čitanje počinje da se kreće.
Pa, ukoliko imate stopiran film u nekom trenutku akcijom stop() koja je dodata nekom frejmu, nema smisla na istom mestu dodavati akciju play() bez nekog uslova. Dakle, da bi ova komanda imala smisla, moramo kreirati neki uslov.
Uslov je najčešće akcija korisnika, a akcije koje prate interaktivnost će biti objašnjene u sledećoj lekciji. Za nas je sada bitno da je sintaksa ove akcije:
play();
dakle, bez parametara.
Moguće je dodati putanju do nekog simbola i njegovog Timeline-a:
kvadrat.play();
i biće pušten Timeline u simbolu Kvadrat.
Akcije nextFrame() i prevFrame()
Ove dve akcije vrše pomeranje glave za čitanje za jedan frejm unapred (nexFrame) ili unazad (prevFrame) i tu zaustavljaju film.
Naime, sintaksa je jednostavna, bez parametara:
nextFrame();
prevFrame();
Ove akcije se takođe najčešće dodaju uz neki uslov (neku akciju korisnika).
Akcijama je moguće kontrolisati i Timeline nekih simbola na sceni, upotrebom putanje:
kvadrat.nextFrame();
krug.prevFrame();
Akcije nextScene() i prevScene()
Kao i kod prethodnih akcija, ove dve akcije vrše skok na sledeću, odnosno prethodnu scenu našeg Flash filma (ukoliko one postoje).
Sintaksa je jednostavna:
nextScene();
prevScene();
Ovu akciju možete postaviti unutar nekog uslova kao reakciju na klik ili je možete postaviti ne neki frejm tako da se akcija aktivira čim glava za čitanje dođe do tog frejma.