Tvorba hier vo Flashi - tretia časť

Chcete vedieť ako vytvoriť zaujímavo vyzerajúci a veľmi jednoduchý preloader vo Flashi? Už žiadne biele miesta na vašom webe, ale efektne vyzerajúce načítavanie...

V minulej časti sme spomenuli, že si povieme niečo o načítavaní *.swf súboru. Poďme teda na to. Uvažujme o situácii, že máme Flash banner 468x60 na jednom rámiku časovej osi (na počte rámikov, na ktorých sa banner nachádza nezáleží). Máme však taký problém, že pri načítavaní stránky sa na mieste s bannerom zobrazí biele, respektíve prázdne miesto a banner sa zobrazí až po chvílke. Spomenutá situácia určite nevyzerá príliš pekne a tak namiesto bieleho miesta zobrazíme v počiatočnej chvílke hlásenie Načítam...

Rámik na časovej osi posunieme z prvej pozície na tretie miesto (políčko). Tým sme si zabezpečili, že na prvé dve políčka časovej osi môžeme vložiť kód actionscriptu, ktorý sa bude starať o načítavanie tretieho políčka osi. No a prečo sme vynechali hneď dve políčka pred tretím? Je to preto, lebo najskôr bude prebiehať opakovanie prvých dvoch políčok na osi, kde sa zakaždým otestuje, či je už načítané tretie políčko osi (respektíve zvyšné políčka). Ak nie je načítané, skript točí dookola prvé dve políčka, kde by mala byť len veľmi jednoduchá animácia alebo len text. To preto, aby sa tieto prvé dve políčka osi načítali, čo najrýchlejšie a na obrazovke sa zobrazí Načítavam... namiesto prázdneho miesta. V prípade, že skript zistí kompletné načítanie zvyšného tretieho políčka *.swf súboru, tak pošle prehrávciu hlavu ďalej na toto tretie políčko. Celý súbor je teda už načítaný. Avšak na treťom políčku osi je nutné prehrávaciu hlavu zastaviť. Je to preto, lebo práve na tomto políčku sa nachádza finálna animácia banneru. Ak by sme prehrávaciu hlavu nezastavili na treťom políčku, stalo by sa to, že by sa prehrávanie súboru točilo dookola a my by sme stále videli úvodné Načítavam... a hneď za tým na moment banner a takto dookola. Teda po úvodnom načítaní jednoducho zastavíme načítavaciu hlavu na načítanom banneri, ktorý sa môže v pohode zobrazovať. Aby sme však iba neteoretizovali, tak uvádzam kód použitý na políčku číslo dva na časovej osi:

	if(Number(_framesloaded)>=Number(_totalframes)) {
	gotoAndStop(3);}
	else {
	gotoAndPlay(1);
	}

Už sme si vysvetlili princíp činnosti preloadera, tak len stručne okomentujem predošlý kód: Ak je počet načítaných frameov na osi väčší alebo rovný počtu všetkých frameov(rámikov časovej osi), tak choď na rámik 3 a zastav tam, inak choď na rámik 1 a testuj ďalej. Funkcia Number(argument) je použitá len na prevod argumentu na číslo.

To, čo sme si teraz uviedli je najjednoduchší variant vytvorenia Preloadera. Teda namiesto prázdneho miesta sa zobrazí text Načítavam..., ktorý je umiestnený na prvých dvoch rámikoch časovej osi na identickom mieste (identické súradnice textu). Samozrejme, že je možné vytvoriť aj viac "vyšperkovaný" preloader ("načítavač"). Ďalšie súčasti sú však už len na autorovi samotnom. Napríklad by sa dalo na prvé dva rámiky umiestniť jednoduchý obdĺžnik a podľa počtu už načítaných frames(rámikov) meniť percentuálne Xovú hodnotu dĺžky strany obdĺžnika, čím by vznikol dojem známy z Windowsu napr. pri kopírovaní. Takže teraz som uviedol manuálne naprogramovanie preloadera. Komu sa však nechce vytvárať vlastný a zároveň originálny preloader, ten môže použiť vstavaný komponent Loader. O komponente Loader si povieme v budúcej časti nášho seriálu.

Možno sa pýtate, kedy už budeme vytvárať hru spomínanú v titulku článku. Nuž čoskoro... Avšak bez dôkladnej prípravy a bez oboznámenia sa so základným prostredím, skriptovacím jazykom a komponentami to nie je možné.Takže, aby sme sa vyhli nedorozumeniam počas tvorby a písania kódu hry budeme venovať predošlý čas štúdiu technológie Flash - actionscript. Inak to nejde. Verím však, že po zvládnutí prvotných častí sa vám bude zdať tvorba hry veľmi jednoduchá - dokonca iba ako hračka :)



Ján Hruboš, j111@azet.sk
Stiahnuté z Developer.sk