I denne opplæringen skal vi lage en uvanlig, men veldig kul type klokke: en binær klokke.
La oss se på det endelige resultatet vi vil jobbe for:
Alle vet hvordan man skal telle, men ikke alle vet at det er så mange forskjellige måter å gjøre det på. Vi er vant til en spesiell måte å telle som heter desimalsystemet, men vi kan også bruke det heksadesimale, oktale eller binære systemet, blant annet.
I vårt desimalanlegg tildeler vi 10 til å representere totalt antall fingre og tommelfinger som vi hver har, og teller opp og ned derfra. Men i binær representerer 10 bare totalt antall tommelen - så 10 i binær er lik 2 i desimal; 11 i binær er 3 i desimal; 100 i binær er 4 i desimal, og så videre. Så i stedet for hver kolonne som representerer enheter, tiere, hundrevis, tusenvis, ... (teller fra høyre til venstre), representerer de enheter, to, fire, åtter, ..., dobler hver gang.
Så nummer 10 vi normalt ser, kan representeres på forskjellige måter:
Det binære systemet er basert på nummer to, derfor kalles det binary, i motsetning til desemberimal system som vi vanligvis bruker og som har en base på 10. Det binære systemet er det som brukes av datamaskiner til å fungere, fordi vi kan bruke det til å representere et tall ved hjelp av en serie brytere "on" (1) og "off" (0).
Med denne kunnskapen kan du finne ut hvordan du leser klokken i SWF?
Hvis du vil lære mer om dette, kan du Google binært talesystem og sjekke informasjonen om det =)
Opprett en ny AS3 Flash-fil og navnet "Binary_Clock.fla".
Gå til egenskapene og endre størrelsen til 550x400 og bakgrunnsfargen til # 222222.
Gå til TweenMax-prosjektets nettside og last ned biblioteket for AS3.
Unrar filen og kopier mappen som heter "com" til mappen der du har din Binary_Clock.fla fil.
Nå, gå til Sett inn> Nytt symbol og navnet "Bit" med type Filmklipp.
Denne "Bit" vil representere et enkelt siffer i et nummer. Det vil ha to stater, i to forskjellige farger: en vil representere 0 og den andre representerer 1.
Deretter i det symbolet du nettopp opprettet, lag et nytt firkant på 50x50px.
Endre firkantets farge til # 00CBFF og senter den.
Tilbake på scenen, ta noen biter fra bibliotekspanelet og ordne dem til å lage de kolonnene vi skal bruke. Du bør ende med noe slikt:
Hvis du vil, kan du legge til tekstetiketter og linjer for å gjøre det mer forståelig:
For hver bit, endre forekomstnavnet på egenskapspanelet. Gi dem navnene som bildet nedenfor viser:
Gå til egenskapspanelet og sett klassefeltet til "Main", dette er navnet på den klassen vi skal lage i neste trinn.
(Ikke sikker på hva vi gjør her? Les denne raske introduksjonen til dokumentklasser.)
Med scenen fullført, kan vi nå starte kodingen. Først oppretter du en ny ActionScript 3.0-fil og lagrer den som "Main.as".
Legg til denne koden i filen:
pakke import flash.display.MovieClip; offentlig klasse Main utvider MovieClip offentlig funksjon Main ()
Vi begynner med å importere de nødvendige klassene. Legg til dette under pakkeerklæringen:
importer flash.display.MovieClip; importere flash.utils.Timer; importer flash.events.TimerEvent; importer com.greensock. *; importer com.greensock.easing. *;
Deretter erklærer vi noen offentlige variabler. Legg til dette under klassedeklarasjonen:
Offentlig var klokke: Timer = Ny Timer (1000); offentlig var dato: dato = ny dato (); offentlig var hr: int; offentlig var min: int; offentlig var sek: int; offentlige var biter: Array;
Oppretter et nytt Date-objekt setter det automatisk til den gjeldende tiden.
OK så nå la vi legge til koden som vil starte klokken. Dette går inn i Main () -funksjonen:
// Med dette tilordner vi de faktiske verdier for klokken til hver variabel sec = date.getSeconds (); min = date.getMinutes (); HR = date.getHours (); clock.start (); clock.addEventListener (TimerEvent.TIMER, setTime);
Dette er funksjonen som vil bli kalt hvert sekund.
privat funksjon setTime (e: TimerEvent): void date = new Date (); sek = date.getSeconds (); min = date.getMinutes (); HR = date.getHours ();
Denne funksjonen vil endre et desimalnummer til et binært array, som vil bli brukt senere.
privat funksjon dec2bin (dec: int, lengde: int): Array var bin: Array = new Array (); mens ((dec / 2)> 0) // merk dette har samme effekt som "mens ((dec / 2)> = 1)" bin.push (dec% 2); // dec% 2 er * gjenværende * når dec er delt med to. 3% 2 = 1; 4% 2 = 0; 5% 2 = 1; 6% 2 = 0; etc. // med andre ord, dec% 2 er 1 hvis dec er merkelig og 0 hvis dec er jevnt. desember = desember / 2; // fordi dec er en int, det vil bli avrundet mens (bin.lengthSå, dec2bin (13, 4) gir [1,1,0,1].
Trinn 19: Opprett omformer () Funksjon
Denne funksjonen tar et desimalnummer og bruker dec2bin () for å konvertere det til 2-kolonne-arrayet vi har på displayet.
privatfunksjonskonverter (num: int): Array var st: String = String (num); hvis (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 resultat: Array = fColumn.concat (sColumn); returresultat;
Trinn 20: Slår på og av
Nå må vi legge til noe som vil slå biter på og av; det er hva denne funksjonen gjør:
// newBits er 2-kolonne-arrayet vi får fra omformer (), målet er "H" "M" eller "S" for å indikere hvilken kolonne som skal brukes til private funksjonen turnBits (newBits: Array, mål: String): void / / Loops gjennom 2-kolonne-arrayet for å endre bitens tilstand for (var a: int = 0; a
Trinn 21: Endre funksjonene
Et par modifikasjoner til Main () og setTime () Funksjoner: Vi trenger bare å ringe til funksjonen, slik at endringene gjøres hvert sekund og i starten:
offentlig funksjon Main () sec = date.getSeconds (); min = date.getMinutes (); HR = date.getHours (); turnBits (omformer (sek), 'S'); turnBits (omformer (min), 'M'); turnBits (omformer (t), 'H'); clock.start (); clock.addEventListener (TimerEvent.TIMER, setTime); privat funksjon setTime (e: TimerEvent): void date = new Date (); sek = date.getSeconds (); min = date.getMinutes (); HR = date.getHours (); turnBits (omformer (sek), 'S'); turnBits (omformer (min), 'M'); turnBits (omformer (t), 'H');Prøv det, og du vil se det riktig vise klokken. Men vi kan gjøre det bedre ...
Trinn 22: En liten bit av stil
Det er her TweenMax kommer inn. Vi vil legge til glød og letthet for å gi et bedre utseende på klokken. Endre funksjonen turnBits () som:
private funksjon turnBits (newBits: Array, mål: String): void for (var a: int = 0; aOg det er det! Vi har avsluttet vår opplæring =)
Konklusjon
Nå har vi en attraktiv klokke som vi kan bruke som vår skjermsparer eller legge til på en nettside.
Dette er min første opplæring så jeg håper du likte det. Takk for at du leste!