STEAM PRELOADER as2 |
V tomto tutoriály vám ukážem ako v actionscript 2.0 vytvoriť preloader ktorý vyzerá ako loading zo steam klienta
s meniteľnými farbami a funkciou ktorá pozastaví flash na 5 sec (oneskorenie je tiez nastaviteľné) po dokončení načítavania a potom posunie scénu na samotný obsah. Výsledok by mal vyzerať nasledovne(príklad zobrazený nižšie bol upravený
aby bolo vydieť samotnú loadovaciu časť, zdrojový súbor obsahuje funkčný preloader):
Otvorte actionscript 2.0 dokument. Vložte novú vrstvu. Nazveme hornú vrstvu Actions a spodnú Content. Vyberte Ations vrstvu a vložte tri , jeden blok dlhé, prázdne framy. Teraz na Content vrstvu vložte
jeden, dva bloky dlhý, fame a jeden jeden blok dlhý frame. Prvé dva framy budú slúžiť pre samotný preloader a na treťom začne samotný obsah ktorý sme loadovali. Tento tutoriál predpokladá, že scéna má rozmery 550 x 400 px. Ak chcete umeistniť preloader niekde inde na scéne
musíte upraviť súradnice v actionscripte podľa novej polohy na scéne. Teraz vyberte vrstvu Content, frame číslo jeden a vložte prázdny obdľžnik s rozmermi 431 x 34px na X:60 Y:268 súradnice. Teraz nad neho vložte dynamický text a nazvite ho percenta_txt.
ďalej nakreslite plný obdĺžnik s rozmermi 15 x 30px, skonvertujte ho na movieclip a v convert to symbol okne zaškrnite export for actionscript a vpíšte dot do identifier kolonky. Teraz vyberte vrstvu Actions, frame dva a vložte nasledujúci actionscript kód:
stop(); Stage.showMenu = false; delay = 5000; //milliseconds function playMovie() { gotoAndPlay(_currentframe + 1); clearInterval(pauseInt); } var n:Number = 47; loading = Math.round(getBytesLoaded()/getBytesTotal()*100); if(loading < 4){ i = 1; attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270}); }else if(loading < 8){ for(i=1;i<=2;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 12){ for(i=1;i<=3;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 16){ for(i=1;i<=4;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 20){ for(i=1;i<=5;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 24){ for(i=1;i<=6;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 28){ for(i=1;i<=7;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 32){ for(i=1;i<=8;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 36){ for(i=1;i<=9;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 40){ for(i=1;i<=10;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 44){ for(i=1;i<=11;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 48){ for(i=1;i<=12;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 52){ for(i=1;i<=13;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 56){ for(i=1;i<=14;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 60){ for(i=1;i<=15;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 64){ for(i=1;i<=16;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 68){ for(i=1;i<=17;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 72){ for(i=1;i<=18;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 76){ for(i=1;i<=19;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 80){ for(i=1;i<=20;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 84){ for(i=1;i<=21;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 88){ for(i=1;i<=22;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 92){ for(i=1;i<=23;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading < 96){ for(i=1;i<=24;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} }else if(loading = 100){ for(i=1;i<=25;i++){ attachMovie("dot", "dot"+i, i, {_x:n+(i*17), _y:270});} } if (loading == 100) { pauseInt = setInterval(playMovie, delay); }else{ gotoAndPlay(1); }
Riadok 2 skryje right click menu.Riadky 3-7 sú oneskorovacia funkcia nastavená na 5sec. Riadok 9 ukladá načítané % do premennej loading. Veľká if podmienka vkladá dot movieclip
na scénu na základe načítaného objemu dát. Posledný if kontroluje či už dosiahla hodnoty 100 a v tom prípade spustí delay funkciu ktorá po 5 sec posunie scénu na ďalší frame. Teraz označte frame 3 a vložte nasledujúci kód. Ten odstráni všetky dot movieclipy pridané na scénu počas loadovania. for (p=1; p<=25; p++) { _root["dot"+p].removeMovieClip(); } |