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();
}


STIAHNUT ZDROJOVY SUBOR