Animații simple - interfețe web api, mdn

Probabil cea mai mare limitare este că atunci când o figură este trasată, ea nu mai poate fi mutată. Pentru a ilustra mișcarea, trebuie să redesemnăm forma și tot ceea ce a fost tras înaintea ei. Redarea cadrelor complexe durează mult timp, iar performanța depinde în mare măsură de viteza computerului pe care rulează.

Următoarele etape sunt necesare pentru a desena un cadru:

  1. Panza clară
    Dacă figura pe care o veți desena nu ocupă întreaga pânză (de exemplu, fundalul, de exemplu), atunci tot ce a fost desenat înainte trebuie șters. Cel mai simplu mod de a face acest lucru este cu metoda clearRect ().
  2. Salvați starea inițială a pânzei
    Dacă modificați orice setări (cum ar fi stiluri, de transformare, etc.), care afectează starea de pânză, și doriți să vă asigurați că starea inițială este utilizată de fiecare dată când cadru a fost pronunțată, trebuie să-l salvați la starea inițială.
  3. Desenați forme animate
    Pas pe care trageți de fapt un cadru.
  4. Recuperați starea canvasului
    Dacă ați salvat starea, restabiliți-o înainte de a desena un nou cadru.

Gestionați animația

Cifrele sunt desenate pe panza fie direct - folosind metode de panza, fie prin utilizarea unor funcții terțe. Într-o situație normală, rezultatul va fi vizibil pe panza după terminarea scenariului. De exemplu, bucla pentru nu poate fi utilizată pentru animație.

Aceasta înseamnă că aveți nevoie de o modalitate de a efectua funcțiile de randare la intervale. Există două moduri de a gestiona această animație.

Actualizări programate

Prima este funcția window.setInterval (). window.setTimeout (). și window.requestAnimationFrame (). care pot fi folosite pentru a apela o funcție, după o anumită perioadă de timp.

setInterval (funcția, întârziere) Începe periodic pentru a executa funcția funcțională în fiecare milisecundă de întârziere. setTimeout (funcție, întârziere) Execută funcția specificată de funcție în milisecunde întârziere. requestAnimationFrame (apel invers) spune browser-ului pe care doriți să efectuați o animație și solicită ca browser-ul apela o funcție specifică pentru a actualiza o animație înainte de următoarea revopsiti.

Dacă nu doriți nicio interacțiune cu utilizatorul, puteți utiliza funcția setInterval () care execută în mod repetat codul furnizat. Dacă vrem să facem un joc, am putea folosi evenimente de la tastatură sau mouse pentru a controla animația și a folosi setTimeout (). Prin setarea EventListener s, prinde orice interacțiune cu utilizatorul și execută funcțiile de animație.

Un sistem solar animat

Acest exemplu animă un mic model al sistemului nostru solar.

Articole similare