DIGITALNE H0DINY                                                                     as3


    Tento tutorial je veľmi jednoduchý čo sa týka samotného flashu, no o niečo zložitejší po actionscript stránke. Keďže flash Date() premenná nieje dvojciferná pre hodnoty od 0 do 9, budeme musieť pre tieto hodnoty pridať 0 manuálne aby smedostali pekne vyzerajúce hodinky. Na konci to bdue vyzerať približne takto:



    Otvorte nový actionscript 3.0 flash dokument a vložte text field, buď cez ikonku alebo stlačte T. Veľkosť, farba, font atd. je úplne na vašom rozhodnutí a vkuse, len sa uistite, že táto textová oblať je dostatočne dlhá aby sa do nej zmestili všetky číslice týchto hodín. Označte tento text a spravte z neho Dynamic Text a do <Instance Name> napíšte CLOCK


To je všetko čo sa týka scény. Teraz otvorte actions panel (zmačknite F9) a vložte nasledovný actionscript kód.




function refreshTimes(Event) {

	var date:Date = new Date();

	var hourZero:String = new String();
	var minuteZero:String = new String();
	var secondZero:String = new String();

	var h:Number=date.getHours();
	var m:Number=date.getMinutes();
	var s:Number=date.getSeconds();

	if (s<10) {
		secondZero="0";
	} else {
		secondZero="";
	}

	if (m<10) {
		minuteZero="0";
	} else {
		minuteZero="";
	}

	if (h<10) {
		hourZero="0";
	} else {
		hourZero="";
	}

	var displayTime:String = (hourZero +h+":"+minuteZero+m+":"+secondZero+s);
	CLOCK.text=displayTime;
}
stage.addEventListener(Event.ENTER_FRAME, refreshTimes);


    Prvý riadok je definícia funkcie ktorú budeme volať na obnovenie hodín vždy keď sa obnový frame. Riadky 5-15 vytvárajú premenné do ktorých uložíme aktuálny čas. 18 - 43 pridávajú 0 do minút , hodín a sekúnd ak ich hodnota je pod 10, keďže Date() nevracia hodnoty 0-9 ako dvojciferné čísla s extra nulov. Nasledovná if podmienka zabezpečí že dostaneme 01,02,03... namiesto 1,2,3... Riadok 46 kombinuje všetky premenné a uloží ich do jednej novej premennej typu string. Na riadku 48 posielame tento string do textového poľa na scéne ktoré ho nasledovne zobrazí. Keďže actionscript 3.0 Date() sa neobnovuje automaticky ako v actionscript 2.0, musíme ho obnovovať manuálne znova a znova pokaždé keď sa znova načíta frame ( 60 krát za sekundu defaultne ).



STIAHNUT ZDROJOVY SUBOR