In questo tutorial creeremo un tipo di orologio insolito, ma molto bello: un orologio binario.
Diamo un'occhiata al risultato finale su cui lavoreremo:
Tutti sanno come contare, ma non tutti sanno che ci sono tanti modi diversi per farlo. Siamo abituati a un modo speciale di contare il sistema decimale chiamato, ma potremmo anche usare il sistema esadecimale, ottale o binario, tra gli altri.
Nel nostro sistema decimale, assegniamo 10 a rappresentare il numero totale di dita e pollici che ognuno di noi ha e contano su e giù da lì. Ma in binario, 10 rappresenta solo il numero totale di pollici - quindi 10 in binario è uguale a 2 in decimale; 11 in binario è 3 in decimale; 100 in binario è 4 in decimale e così via. Quindi, piuttosto che ogni colonna che rappresenta unità, decine, centinaia, migliaia ... (contando da destra a sinistra), rappresentano unità, due, quattro, otto, ..., raddoppiando ogni volta.
Quindi il numero 10 che vediamo normalmente può essere rappresentato in modi diversi:
Il sistema binario è basato sul numero due, ecco perché è chiamato biNary, al contrario di dicembresistema imal che usiamo normalmente e che ha una base di 10. Il sistema binario è quello usato dai computer per funzionare, perché possiamo usarlo per rappresentare qualsiasi numero usando una serie di interruttori "on" (1) e "off" (0).
Con questa conoscenza, puoi capire come leggere l'orologio nel file SWF?
Se vuoi saperne di più su questo puoi utilizzare il sistema numerico binario di Google e controllare le informazioni a riguardo =)
Crea un nuovo file Flash AS3 e chiamalo "Binary_Clock.fla".
Vai alle proprietà e modifica le dimensioni in 550x400 e il colore di sfondo in # 222222.
Vai alla pagina web del progetto TweenMax e scarica la libreria per AS3.
Rimuovi il file e copia la cartella denominata "com" nella cartella in cui ti trovi Binary_Clock.fla file.
Ora vai Inserisci> Nuovo simbolo e nominatelo "Bit" con tipo Movie Clip.
Questo "Bit" rappresenterà una singola cifra di un numero e avrà due stati, in due colori diversi: uno rappresenterà 0 e l'altro rappresenterà 1.
Successivamente, nel simbolo appena creato, crea un nuovo quadrato di 50x50 px.
Cambia il colore del quadrato in # 00CBFF e centralo.
Tornati sul palco, prendi alcuni bit dal pannello della biblioteca e disponili per creare le colonne che useremo. Dovresti finire con qualcosa del genere:
Se lo desideri, puoi aggiungere etichette e linee di testo per renderlo più comprensibile:
Per ogni bit, modificare il nome dell'istanza nel relativo pannello delle proprietà. Dai loro i nomi come l'immagine qui sotto dimostra:
Vai al pannello delle proprietà e imposta il campo della classe su "Principale", questo è il nome della classe che creeremo nel passaggio successivo.
(Non sei sicuro di cosa stiamo facendo qui? Leggi questa breve introduzione alle classi di documenti.)
Con lo stage completato, ora possiamo iniziare a programmare. Prima crea un nuovo file ActionScript 3.0 e salvalo come "Main.as".
Aggiungi questo codice al file:
package import flash.display.MovieClip; public class Main estende MovieClip public function Main ()
Inizieremo con l'importazione delle classi necessarie. Aggiungi questo sotto la dichiarazione del pacchetto:
import flash.display.MovieClip; import flash.utils.Timer; import flash.events.TimerEvent; import com.greensock. *; import com.greensock.easing. *;
Successivamente, dichiareremo alcune variabili pubbliche. Aggiungi questo sotto la dichiarazione della classe:
public var clock: Timer = new Timer (1000); data var pubblica: Date = new Date (); public var hr: int; public var min: int; public var sec: int; var var public: Array;
La creazione di un nuovo oggetto Date lo imposta automaticamente sull'ora corrente.
OK, quindi ora aggiungiamo il codice che avvierà l'orologio. Questo va all'interno della funzione Main ():
// Con questo assegniamo i valori effettivi per l'orologio a ciascuna variabile sec = date.getSeconds (); min = date.getMinutes (); hr = Date.getHours (); clock.start (); clock.addEventListener (TimerEvent.TIMER, setTime);
Questa è la funzione che verrà chiamata ogni secondo.
funzione privata setTime (e: TimerEvent): void date = new Date (); sec = date.getSeconds (); min = date.getMinutes (); hr = Date.getHours ();
Questa funzione cambierà un numero decimale in un array binario, che verrà usato in seguito.
funzione privata dec2bin (dec: int, length: int): Array var bin: Array = new Array (); while ((dec / 2)> 0) // nota che ha lo stesso effetto di "while ((dec / 2)> = 1)" bin.push (dec% 2); // dec% 2 è il * resto * quando dec è diviso per due. 3% 2 = 1; 4% 2 = 0; 5% 2 = 1; 6% 2 = 0; ecc. // in altre parole, dec% 2 è 1 se dec è dispari e 0 se dec è pari. dim = DEC / 2; // poiché dec è un int, sarà arrotondato mentre (bin.lengthQuindi, dec2bin (13, 4) dà [1,1,0,1].
Passaggio 19: creare la funzione converter ()
Questa funzione prende un numero decimale e usa dec2bin () per convertirlo nell'array a 2 colonne che abbiamo sul display.
convertitore di funzioni private (num: int): Array var st: String = String (num); if (st.length == 1) st = "0" + st; var fDigit: int = int (st.charAt (1)); var sDigit: int = int (st.charAt (0)); var fColumn: Array = dec2bin (fDigit, 4); var sColumn: Array = dec2bin (sDigit, 3); var result: Array = fColumn.concat (sColumn); ritorno risultato;
Passaggio 20: attivazione e disattivazione dei bit
Ora dobbiamo aggiungere qualcosa che accenderà e spegnerà i bit; questo è ciò che fa questa funzione:
// newBits è l'array a 2 colonne che otteniamo da converter (), target è "H" "M" o "S" per indicare quale colonna utilizzare turnBits di funzione privata (newBits: Array, target: String): void / / Cicli attraverso l'array a 2 colonne per modificare lo stato del bit per (var a: int = 0; a
Passaggio 21: modifica delle funzioni
Un paio di modifiche alle funzioni Main () e setTime (): dobbiamo solo chiamare la funzione in modo che le modifiche vengano fatte ogni secondo e all'inizio:
funzione pubblica Main () sec = date.getSeconds (); min = date.getMinutes (); hr = Date.getHours (); turnBits (convertitore (sec), 'S'); turnBits (convertitore (min), 'M'); turnBits (convertitore (HR), 'H'); clock.start (); clock.addEventListener (TimerEvent.TIMER, setTime); funzione privata setTime (e: TimerEvent): void date = new Date (); sec = date.getSeconds (); min = date.getMinutes (); hr = Date.getHours (); turnBits (convertitore (sec), 'S'); turnBits (convertitore (min), 'M'); turnBits (convertitore (HR), 'H');Provalo e vedrai che visualizza correttamente l'ora. Ma possiamo fare di meglio…
Step 22: Un po 'di stile
È qui che entra in gioco TweenMax. Aggiungiamo luminosità e facilità per dare un aspetto migliore all'orologio. Modifica la funzione turnBits () in questo modo:
funzione privata turnBits (newBits: Array, target: String): void for (var a: int = 0; aE questo è tutto! Abbiamo terminato il nostro tutorial =)
Conclusione
Ora abbiamo un orologio attraente che potremmo usare come nostro salvaschermo o aggiungere a una pagina web.
Questo è il mio primo tutorial quindi spero che ti sia piaciuto. Grazie per aver letto!