ANALOGOVE H0DINY                                                                  as3


    V tomto tutoriály vam ukážem ako vytvoriť plne upraviteľné analógové hodiny s funkčnou sekundovou, minútovou a hodinovou ručičkov za použitie iba actionscriptu 3.0. Na konci by sme mali dostať niečo nasledovné:



    Začneme vytvorením prázdneho actionscript 3.0 flash dokumentu. Nakreslite prázdy kruh, alebo ak chcete mať pozadie inej farby ako je farba scény tak plný kruh. Ak pri kreslení kruhu podržíte shift, vytvoríte presný kruh. Vložte novú vrstvu a na ňu nakreslite hodinové ručičky, ich vzhľad je úplne na vašom posúdení. Vytvorte znich movieclp-y a do ich instace names napíšte hourHand_ ,minuteHand_ a secondHand_. Uistite sa že stred spodnej hrany hodinových ručičiek je v bode 0,0 (X:0,Y:0). Tento bod je zobrazený ako malý kríž keď označíte movieclip, proste presunte vašu kresbu do toho bodu. Je to dôležíté pretože actionscript otáča movieclpy okolo tohto (X:0,Y:0) bodu,pokial mu to nieje prikázané inak. Vysledok by mal vyzerať niako takto:

    Ten malý zakrúžkovaný kríž je ten spomýnaný 0,0 bod ktorý ste hľadali. To je bod okolo ktorého sa táto ručička bude otáčať. Teraz presunte všetky tri movieclipy v ktorých sú jednotlivé hodinové ručičky tak aby ich 0,0 body boli presne v strede kruhu ktorý ste nakreslili skôr. Odporúčam jednotlivé ručičky umiestniť do vlastných hladín kôli lepšej manipulácii.

     Teraz vložte novú vrstvu, vyberte prvý frame , otvorte actions - frame okno ( zmačknutím F9 napr. ) a vložte nasledujúci actionscript kód: .



this.addEventListener("enterFrame",clockHandler);
function clockHandler(e:Event) {

	    // set hour
		var time = new Date();
		var hourHand = time.getHours();
		var minuteHand = time.getMinutes();
		var secondHand = time.getSeconds();
		// rotate clock hands
		hourHand_.rotation = 30 * hourHand + minuteHand / 2;
		minuteHand_.rotation = 6 * minuteHand;
		secondHand_.rotation = 6 * secondHand;
		
}



    Prvý riadok je event listener ktorý volá clockHandler funkciu pokaždé keď sa načita frame. Defaultne je to 40/60 fps, teda sa frame obnoví 40/60 krát za sekundu. Druhý riadok je definícia funkcie. ďalej tu máme sekundy , minuty a hodiny uložené v premenných ktoré sú použité na riadkoch 10,11,12 na nastavenie uhla jednotlivých ručičiek v závislosti od aktuálneho času.



STIAHNUT ZDROJOVY SUBOR