Construiți un cronometru personalizat și un indicator de progres în AS3

În timpul acestui tutorial voi demonstra cum să faceți un cronometru personalizat care să susțină numărarea în sus sau în jos până la o anumită perioadă de timp.


Rezultatul final al rezultatelor

În demo-ul de mai jos veți vedea timpul de numărare de la 1:00, o bară de progres care urmărește progresul cronometrului și un buton de anulare.

Odată ce numărătoarea inversă de la 1:00 este terminată sau dacă apăsați butonul de anulare, un clip video clipeste din dreapta. Acest clip video vă permite să introduceți ora dorită și determină dacă aveți timpul de numărare în sus sau în jos. O bara de progres va fi atașată și va urmări progresul timpului. După terminarea timpului sau apăsarea butonului de anulare, veți putea introduce un nou moment.


Pasul 1: Codarea clasei personalizate de cronometru

Aici vom scrie clasa personalizată ce va conduce filmul nostru principal.

Accesați File> New și alegeți Class Actionscript 3.0. Salvați acest fișier ca "CountTimer.as".


Pasul 2: Clasa de import

Aici vom deschide pachetul și vom importa clasele de care vom avea nevoie pentru a scrie această clasă.

Adăugați următoarele la "CountTimer.as"

 pachet // Necesar pentru importul timerului flash.utils.Timer; import flash.events.TimerEvent; // Vom actualiza acest TextField cu timpul de import flash.text.TextField;

Pasul 3: Variabile și funcția Constructor

Aici vom declara variabilele de care va avea nevoie clasa și va codifica funcția constructorului.

Adăugați următoarele la "CountTimer.as".

 clasa publică CountTimer extinde Timer // Câmpul de text în care ora actualizată merge privat var targetText: TextField; // Direcția temporizatorului, adică "sus" sau "jos" direcția var privată: String; // Cât de multe minute are timerul privat var minut: int; // Câte secunde cronometrul are secunde private var: int; // Utilizat în calculul nostru pentru a actualiza timerul privat totalSeconds: int; // Suma totală a timpului = (Minute + Secunde) priv var varTotal; // Cât de mult timp a trecut Passed private timeLoaded = 0; // Setați drept adevărat pentru a testa testul temporar var var: Boolean = false; funcția publică CountTimer (min: int, sec: int, dir: String, targetTextField: TextField = null) minute = int (min * 60); secunde = int (sec); timeTotal = minute + secunde; super-(1000, timeTotal); dacă (dir == "jos") totalSeconds = minute + secunde;  altceva totalSeconds = 0;  dacă (targetTextField! = null) targetText = targetTextField;  direcție = dir; 

Aici am declarat câteva variabile de care avem nevoie pentru clasa noastră.

Funcția Constructor are patru parametri; acestea sunt următoarele:

  • min: O valoare întregă care reprezintă câte minute doriți să aibă cronometrul.
  • sec: O valoare întregă care reprezintă câte secunde doriți să aibă timer-ul.
  • dir: Un șir reprezentând direcția contorului poate fi unul dintre următoarele: "sus" sau "în jos".
  • targetTextField: Un TextField care va fi folosit pentru a afișa ora actualizată (Acest lucru este opțional).

În interiorul funcției constructorului am setat minute variabilă egală cu valoarea specificată de min * 60 (de la 1 minut este egal cu 60 de secunde).

Apoi am setat secunde variabilă egală cu sec.

Apoi setăm timeTotal variabilă egală cu minute + secunde.

Apoi sunăm super() -- care rulează codul de la funcția constructor a Cronometrul clasa - treci în 1000 de milisecunde, și timeTotal variabil. Folosind 1000 de milisecunde, îi spunem cronometrului să bifeze o dată în fiecare secundă și să treacă timeTotal spunem cronometrul de câte ori să declanșăm.

Apoi verificăm dacă dir parametrul este egal cu "sus" sau "în jos" și setați totalSeconds Variabile în mod corespunzător. Secundele totale vor fi folosite în programul nostru timeHandler () funcţie. Vom incrementa sau diminua acest lucru cu 1 din fiecare cronometru ce declanșează cronometrul.

Apoi verificăm dacă utilizatorul a trecut sau nu un TextField la constructor și a setat targetText variabile dacă au făcut-o; aceasta va fi utilizată pentru a afișa ora.

În cele din urmă am setat direcţie variabilă în direcția în care a intrat utilizatorul.


Pasul 4: Codarea codului start() Funcţie

Aici codem start() pentru cronometrul nostru.

Adăugați următoarele la "CountTimer.as".

 suprascrie funcția publică start (): void super.start (); addEventListener (TimerEvent.TIMER, timerHandler); 

Pentru că am extins Timer, depășim Timerul existent start() metodă. Aici pur și simplu sunăm super.start () (care rulează codul din clasa Timer start() ) și adăugați un EventListener pentru a detecta momentul când cronometrul cade.


Pasul 5: Codarea codului timerHandler Funcţie

Aici ne codificăm timerHandler () funcţie. Aici ne actualizăm timpul și îl afișăm. Această funcție se numește o dată în fiecare secundă.

Adăugați următoarele la clasa CountTimer.

 funcția privată timerHandler (e: TimerEvent): void // Actualizarea timpului nostru variabil Loaded timeLoaded + = 1; dacă (direcția == "sus") // totalSeconds este = 0, pentru a începe cu. Adăugăm 1 la acesta. totalSeconds ++;  altfel // totalSeconds = numărul de secunde prin adăugarea de min și sec; noi scade 1 din totalSeconds;  // Cum vor mai rămâne secunde. secunde = totalSeconds% 60; // Câte minute sunt minutele rămase = Math.floor (totalSeconds / 60); // minutele și secundele de afișat în TextField. var minuteDisplay: String = (minute < 10) ? "0" + minutes.toString() : minutes.toString(); var secondsDisplay:String = (seconds < 10) ? "0" + seconds.toString(): seconds.toString(); if (targetText != null)  targetText.text = minutesDisplay + ":" + secondsDisplay;  if (test=true)  trace(minutesDisplay + ":" + secondsDisplay);  

În cadrul acestei funcții ne actualizăm timeLoaded variabilă, care este utilizată pentru a urmări progresul cât a trecut timpul.

Apoi verificăm dacă direcţie este egal cu "sus" sau "în jos" și să ne ajusteze totalSeconds variabilă în consecință.

Apoi determinăm câte secunde și minute rămân; împingeți minutesDisplay și secondsDisplay cu un zero suplimentar, dacă este necesar; actualizarea TextField (dacă a fost trecută în constructor); și, opțional, urmăriți timpul dacă ne-am stabilit Test variabilă la adevărat (util pentru testare dacă nu setați un TextField).

Calculul utilizat pentru determinarea secunde variabila ia restul de totalSeconds / 60.Operatorul% (modulo) ne dă restul.

Calculul utilizat pentru determinarea minute variabila ia simplu totalSeconds/ 60, rotunjit folosind Math.floor ().


Pasul 6: Codarea codului getTimeTotal () Funcţie

Aici codificăm o funcție care ne întoarce pur și simplu timeTotal .Deoarece am făcut această variabilă privată, avem nevoie de o modalitate de a accesa aceasta.

 funcția publică getTimeTotal (): int return timeTotal; 

Pasul 7: Codarea codului getTimeLoaded () Funcţie

Aici codificăm o funcție care ne întoarce timeLoaded variabil. Din nou, pentru că este privat, avem nevoie de o modalitate de accesare a acestuia.

 funcția publică getTimeLoaded (): int return timeLoaded; 

Pasul 8: Codarea codului getProg () Funcţie

Această funcție ne dă progresul timpului nostru. Este cât de mult din timpul total (pe care l-am stabilit în constructor) a trecut. Înmulțim cu 100, astfel încât să obținem un procent între 1 și 100.

 funcția publică getProg (): int return Math.floor (timeLoaded / timeTotal * 100); 

Pasul 9: Testarea clasei CountTimer

Aici începem să proiectăm filmul principal care folosește clasa noastră "CountTimer".

Mergi la Fișier> Nou și să creați un nou document ActionScript 3.0.

Setați dimensiunea la 320x220 pixeli.

Salvați acest document ca "Timer.fla". Mergi la Fișier> Nou și alegeți Class Actionscript 3.0.

Salvați acest fișier ca "Main.as". Vom încerca clasa noastră CountTimer, deci adăugați următoarele la "Main.as".

 pachet import flash.display.MovieClip; import CountTimer; clasa publică principală extinde MovieClip var countTimer: CountTimer; funcție publică () countTimer = new CountTimer (1,30, "sus"); countTimer.start (); 

Asigurați-vă că ați setat Test variabilă în "CountTimer.as" la Adevărat, și setați clasa de documente a filmului la "Main".

Apăsați ctrl - introduceți și testați filmul; ar trebui să vedeți timpul urmărit în fereastra de ieșire.


Pasul 10: Proiectarea interfeței utilizator

Aici începem să proiectăm principalul film pe care îl folosim CountTimer clasă.

Vom folosi TweenLite în filmul nostru, deci dacă nu aveți o copie, obțineți-o de la greensock.com.


Numărătoarea inversă / numărătoarea

Selectați instrumentul Text și asigurați-vă că în panoul "CHARACTER" sunt setate următoarele proprietăți.

  • Dimensiune: 50,0 pt
  • Culoarea neagra

Totuși, în panoul "Caracter", faceți clic pe "Embed" și asigurați-vă că sunt selectate "UpperCase", "LowerCase", "Numerals" și sub "
că ați adăugat un ":" și un "%".

Desenați un câmp text pe scenă și setați următoarele proprietăți în panoul "POZIȚIE ȘI SIZE".

  • X: 0
  • Y: 0
  • W: 320
  • H: 60

Dă acest TextField numele de instanță "timer_txt"; asigurați-vă că tipul este setat la "Text clasic" și respectiv "Text dinamic".

Acest TextField va fi utilizat pentru a afișa momentul în care filmul începe mai întâi.


Bara de progres

Acum trebuie să proiectăm bara de progres.

Mergi la Insert> Simbol nou. Dați-i numele "ProgressContainer" și asigurați-vă că "Export for Actionscript" este bifat și că Clasa este setată la "ProgressContainer".

Mergi la Fereastră> Componente și trageți o componentă ProgressBar în clipul video.

Setați proprietățile ProgressBar la următoarele.

  • X: 0
  • Y: 0
  • W: 320
  • H: 42,0

Sub "Parametrii componentelor" setați modul la "manual".

Dați ProgressBar numele instanței "pb".

Selectați instrumentul Text și asigurați-vă că sunt setate următoarele proprietăți în panoul "CHARACTER".

  • Dimensiune: 30pt
  • Culoarea neagra

Desenați un TextField în clipul video.

Setați următoarele proprietăți pe TextField.

  • X: 80,0
  • Y: 1.0
  • W: 159,0
  • H: 38: 0

Dă acestui TextField numele de instanță "progress_txt".

Acum puteți închide acest film.


Cultivarea și decolorarea textului

Acum vom proiecta textul în creștere și decolorare, care va fi afișat după ce a trecut tot timpul.

Mergeți la Insert> New Symbol. Dați-i numele "GrowFadeText" și asigurați-vă că "Export for Actionscript" este bifat și clasa este setată la "GrowFadeText".

Selectați instrumentul Text și asigurați-vă că următoarele proprietăți sunt setate în panoul "Caracter".

  • Dimensiune: 15pt
  • Culoare: [Am setat-o ​​pe albastru, puteți face același lucru dacă doriți]

Trageți un TextField în MovieClip și setați următoarele proprietăți.

  • X: -69,0
  • Y: -6,35
  • W: 135,0
  • H: 21,0

Introduceți textul "TIMER COMPLETE" în textField. Acum puteți închide acest film.


Câmpuri de intrare

Acum vom proiecta un clip video care alunecă din stânga. Selectați instrumentul dreptunghi și setați culoarea alb. Trageți un dreptunghi din partea stângă sus a scenei spre dreapta-jos.

Selectați dreptunghiul pe care tocmai l-ați tras afară și apăsați pe F8. Dați-i numele "countContainer". Asigurați-vă că "Export pentru Actionscript este bifat și că Clasa este setată la" countContainer ".

Setați următoarele proprietăți în MovieClip.

  • X: 322
  • Y: 0
  • W: 320
  • H: 220

Faceți dublu clic pentru a intra în interiorul filmului.

Selectați instrumentul Text și asigurați-vă că în panoul "CHARACTER" sunt setate următoarele proprietăți.

  • Dimensiune: 50pt
  • Culoarea neagra

Trageți un câmp de text pe scenă și setați următoarele proprietăți pe acesta.

  • X: 0
  • Y: 0
  • W: 320
  • H: 60

Dați acestui TextField numele de instanță "timer_txt" și asigurați-vă că tipul este setat la "Text Classic" și "Text Input" respectiv.

Din nou, selectați instrumentul Text și trageți un TextField pe scenă. Apoi setați următoarele proprietăți.

  • X: 0
  • Y: 59,0
  • W: 320
  • H: 60

Dați acestui TextField numele de instanță "instructions_txt" și asigurați-vă că tipul este setat la "Text clasic" și respectiv "Text de intrare".

Mergeți la Fereastră> Componente și trageți trei butoane în interiorul acestui clip.

Dați primul buton numelui de instanță "countDown_btn" și setați următoarele proprietăți pe el.

  • X: 14.00
  • Y: 160

Dați celui de-al doilea buton denumirea instanței "cancel_btn" și setați următoarele proprietăți.

  • X: 103,00
  • Y: 160,00

Dați celui de-al treilea buton denumirea de instanță "countUp_btn" și setați următoarele proprietăți.

  • X: 182,00
  • Y: 160,00

Acum puteți închide filmul.

Acum, când avem UI Designed putem scrie codul pentru filmul principal.


Pasul 11: Codarea filmului principal

Dacă urmăriți împreună, ștergeți toate acțiunile ActionScript din "Main.as" pe care le-ați creat în pasul 9. Asta a fost pentru testarea; acum avem nevoie de un cod care să funcționeze cu noua noastră interfață.

Aici vom deschide declarația pachetului și vom importa clasele pe care le vom folosi.

Adăugați următoarele la "Main.as".

 pachet import flash.display.MovieClip; import fl.controls.Button; import flash.text.TextField; import flash.events.TimerEvent; importul flash.events.MouseEvent; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import CountTimer; import com.greensock.TweenLite; importul flash.events.Event; import fl.controls.ProgressBar;

Pasul 12: Variabile și funcția Constructor

Aici declarăm variabilele noastre și codificăm Constructorul.

Adăugați următoarele "Main.as"

 public class Main extinde MovieClip // Un array pentru a ține minutele și secundele în elementele [0] și [1] private var timeArray: Array; // Numărul nostru countTimer private var countTimer: CountTimer; // Un boolean care ne spune dacă acesta este primul cronometru // (cel folosit atunci când începe primul film) private var firstTimer: Boolean = true; // Direcția timerului nostru poate fi "sus" sau "în jos" direcția var privată: String; // MovieClip care conține textul pe care îl creștem și estompăm privat var growFadeText: GrowFadeText; // MovieClip care ne deține progressBar privat var progressContainer: ProgressContainer; // Minutele private var min: int; // A doua privată var sec: int; funcția publică Main () min = 1; sec = 0; countTimer = număr nou CountTimer (min, sec, "jos", timer_txt); timer_txt.text = "1:00"; countTimer.addEventListener (TimerEvent.TIMER_COMPLETE, timerComplete); setupButtons (); addProgressContainer (0,70, "în jos"); countTimer.start (); stage.addEventListener (Event.ENTER_FRAME, updateProgress); cancel_btn.addEventListener (MouseEvent.CLICK, moveContainer); 

Mai întâi am înființat min și sec variabile și să le treacă la countTimer; apoi setați direcția la "jos" și setați TextField țintă la timer_txt.

Apoi, setăm un text prestabilit pentru TextField, adăugăm un text TIMER_COMPLETE la Timer, executați o funcție pentru a configura butoanele, a adăuga ProgressBar, a porni Timer-ul și a adăuga ENTER_FRAME ascultător de evenimente la scenă (pe care îl vom folosi pentru a actualiza bara de progres) și, în final, adăugați o CLIC eveniment ascultător al nostru cancel_btn.


Pasul 13: Codarea codului timerComplete () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată a temporizatoruluiComplete (e: TimerEvent): void addGrowFadeText (154,130); dacă (firstTimer == true) TweenLite.to (creștereFadeText, 2.5, scaleX: 2, scaleY: 2, alpha: 0, onComplete: moveContainer);  altceva TweenLite.to (growFadeText, 2.5, scaleX: 2, scaleY: 2, alpha: 0, onComplete: showTheControls); 

Aici adăugăm textul pe scenă apelând addGrowFadeText () vom examina această funcție în scurt timp prima data variabilă pentru a vedea dacă acesta este primul cronometru, dacă se utilizează tweenLite pentru a crește și estompa textul și pentru a apela moveContainer atunci când animația se termină.Dacă nu este primul cronometru, atunci vom folosi din nou tweenLite pentru a crește și să estompeze textul, dar sunați la showTheControls () după ce animația se termină. Vom examina moveContainer și showTheControls funcții în scurt timp.


Pasul 14: Codarea codului setupButtons () Funcţie

Adăugați următoarele la "Main.as"

 funcția privată setupButtons (): void countContainer.countDown_btn.addEventListener (MouseEvent.CLICK, doTimer); countContainer.countUp_btn.addEventListener (MouseEvent.CLICK, doTimer); countContainer.cancel_btn.addEventListener (MouseEvent.CLICK, restoreControls); countContainer.instructions_txt.text = "Introduceți ora în format 1:30 apoi apăsați butonul CountDown sau CountUp"; // Nu dorim ca utilizatorul să poată edita textul countContainer.instructions_txt.selectable = false; 

Aici adaugam cateva EventListeners la butoanele noastre, setati textul pentru noi instructions_txt și setați-l astfel încât utilizatorul să nu poată selecta sau edita textul. Am folosit un TextField aici pentru a menține acest tutorial deja lung, mai scurt, dar probabil că doriți să utilizați o componentă de etichetă aici și să o stylizați cu un obiect TextFormat.


Pasul 15: Codarea codului addProgressContainer () Funcţie

Adăugați următoarele la "Main.as"

 funcția privată addProgressContainer (xPos: int, yPos: int, dir: String): void progressContainer = nou ProgressContainer (); progressContainer.x = xPos; progressContainer.y = yPos; stage.addEventListener (Event.ENTER_FRAME, updateProgress); addChild (progressContainer); dacă (dir == "jos") progressContainer.pb.direction = "stânga";  altceva progressContainer.pb.direction = "dreapta"; 

Aici vom crea un nou ProgressContainer și îl vom seta X și y proprietăți de către xPos și yPos parametrii care sunt transmise in.Apoi adauga un ENTER_FRAME ascultător de evenimente care apelează updateProgress () funcția, și adăugăm progressContainer la scenă.În cele din urmă, verificăm dir parametru pentru a vedea dacă este egal cu "în jos"; dacă este setat direcția ProgressBar la "stânga", altfel am setat direcția ProgressBar la "right".


Pasul 16: Codarea codului removeProgressContainer () Funcţie

Adăugați următoarele la "Main.as"

 funcția privată removeProgressContainer (): void if (progressContainer! = null) stage.removeEventListener (Event.ENTER_FRAME, updateProgress); removeChild (progressContainer); progressContainer = null; 

Aici verificăm dacă progressContainer există; dacă nu, atunci eliminăm ENTER_FRAME a ascultătorului evenimentului de pe scenă, astfel încât acesta să nu continue să ruleze. Apoi scoatem progressContainer din scenă și îl setăm pe nul deoarece am terminat cu asta.


Pasul 17: Codarea codului updateProgress () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată updateProgress (e: Event): void progressContainer.progress_txt.text = countTimer.getProg (). toString () + "%"; progressContainer.pb.setProgress (countTimer.getTimeLoaded (), countTimer.getTimeTotal ()); 

Aici am setat progress_txtpentru a arăta progresul timerului nostru. Folosim countTimers getProg () metoda care returneaza un intreg a procentului din timpul trecut. Din moment ce returneaza un int folosim AS3's built in toString () pe aceasta, și adăugați un semn "%" la acesta.

Apoi sunăm setProgress () metodei componentei ProgressBar pe ProgressBar (pb). Intrăm countTimer.getTimeLoaded () și countTimer.getTimeTotal () care returnează numere întregi. Pentru a afla mai multe despre componenta ProgressBar, consultați introducerea rapidă a componentei ProgressBar.


Pasul 18: Codarea codului addGrowFadeText () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată addGrowFadeText (xPos: int, yPos: int) growFadeText = new GrowFadeText (); growFadeText.x = xPos; cresFadeText.y = yPos; addChild (growFadeText); 

Aici vom crea o nouă instanță a GrowFadeText, setați-o X și y proprietățile specificate, apoi adăugăm-o în scenă.


Pasul 19: Codarea codului removeGrowFadeText () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată removeGrowFadeText (): void if (growFadeText! = null) removeChild (growFadeText); growFadeText = null; 

Aici verificăm dacă growFadeText există. Dacă nu, îl scoatem din scenă și l-am setat la nul.


Pasul 20: Codarea codului moveContainer () Funcţie

Adăugați următorul text în "Main.as".

 funcția privată moveContainer (e: Event = null): void countTimer.stop (); removeChild (timer_txt); removeChild (cancel_btn); removeGrowFadeText (); removeProgressContainer (); countContainer.cancel_btn.visible = false; firstTimer = false; TweenLite.to (countContainer, 1, x: 0); 

Aici oprim cronometrul și eliminăm timer_txt și cancel_btn. Apoi ne sunăm removeGrowFadeText () și removeProgressContainer () funcții, setați cancel_btn în cadrul countContainer să fie invizibil, setați prima data variabil la fals, și glisați countContainer în utilizarea TweenLite.


Pasul 21: Codarea codului showControls () Funcţie

Adăugați următoarele la "Main.as":

 funcția privată showTheControls (): void showControls (); removeProgressContainer (); countTimer.stop (); countContainer.timer_txt.text = ""; countContainer.timer_txt.text = ""; 

Aici numim showControls , pe care o vom examina în curând. Apoi sunăm removeProgressContainer (), opriți cronometrul și resetați TextField-urile noastre pentru a fi goale.


Pasul 22: Codarea doTimer () Funcţie

Adăugați următoarele la "Main.as":

 funcția privată doTimer (e: MouseEvent): void if (e.target == countContainer.countDown_btn) direcția = "jos";  altfel direction = "up";  dacă (countContainer.timer_txt.text! = "") timeArray = countContainer.timer_txt.text.split (":"); min = timeArray [0]; sec = timeArray [1]; countTimer = număr nou CountTimer (min, sec, direcție, countContainer.timer_txt); countTimer.start (); countTimer.addEventListener (TimerEvent.TIMER_COMPLETE, timerComplete); countTimer.addEventListener (TimerEvent.TIMER, updateProgress); hideControls (); addProgressContainer (0,70, direcție); 

Mai întâi verificăm pentru a vedea ce buton a fost apăsat countDown_btn a fost presat am setat direcţie variabilă la "în jos" altfel am setat direcţie variabilă până la "sus". Mai jos verificăm să ne asigurăm timer_txt nu este gol. Dacă nu este atunci vom folosi Despică() pentru a pune minutele și secundele în timeArray. Despică() funcția ia un șir și o separă de ceea ce îl transmiteți ca parametru - aici am folosit coloana (:) - și apoi adăugăm fiecare "bucată" în matrice. Deci, dacă ai intrat "1:45", atunci elementul matricei [0] ar fi "1"; elementul [1] ar fi "45".

Apoi am setat sec și min variabile.

Apoi vom crea o nouă instanță a countTimer și treceți în min,sec,dir,și TextField de utilizat.

Apoi adăugăm două TimerEvent ascultători care ne sună timerComplete () și updateProgress () funcții.

În cele din urmă numim hideControls () funcția și adăugați progressContainer spre scena.


Pasul 23: Codarea showControls () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată showControls (): void countContainer.instructions_txt.visible = true; countContainer.countDown_btn.visible = true; countContainer.countUp_btn.visible = true; countContainer.cancel_btn.visible = false; 

Aici am setat pur și simplu instruction_txt,countDown_btn,și countUp_btn să fie vizibilă. Apoi am setat cancel_btn a fi învizibil.


Pasul 24: Codarea codului hideControls () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată hideControls (): void countContainer.instructions_txt.visible = false; countContainer.countDown_btn.visible = false; countContainer.countUp_btn.visible = false; countContainer.cancel_btn.visible = true; 

Acesta este opusul funcției anterioare; aici am setat setul instruction_txt,countDown_btn,și countUp_btn să fie invizibil. Apoi am setat cancel_btn să fie vizibilă.


Pasul 25: Codarea codului restoreControls () Funcţie

Adăugați următoarele la "Main.as".

 funcția privată restoreControls (e: Event) showTheControls (); countTimer.stop (); 

Aici numim showControls () și opriți cronometrul.


Pasul 26: Închideți clasa și pachetul.

Adăugați următoarele la "Main.as"

  // Închideți clasa // Închideți pachetul

Aici închidem clasa și pachetul nostru.


Pasul 27: Setați clasa de documente și testați filmul

Deși nu este absolut necesar, setați Test variabil la fals în "CountTimer" .as ".

Asigurați-vă că Clasa de documente este setată la "Main" și testați filmul.


Concluzie

Acum avem o clasă versatilă Timer care poate fi utilizată pentru orice număr de lucruri, de la limitele de timp ale testelor până la stabilirea timpilor pentru nivelurile jocurilor.

Sper că ați găsit acest tutorial util și mulțumesc pentru lectură!

Cod