Curs Flash

In acest tutorial e prezentat modul de creare a unei animatii a carei miscari sunt sincronizate cu un interval de timp specificat. Pentru acest tip de animatie facuta cu ActionScript se foloseste Clasa Timer.
Timer este o clasa utilizata pentru executarea codurilor dupa un interval de timp specificat.
Fiecare obiect "Timer" declanseaza evenimentul TimerEvent.TIMER la o anumita frecventa de timp specificata. Astfel, functia apelata prin acest eveniment se executa repetat, la acel interval de timp, iar prin modificarea frecventa a aspectului vizual al unui obiect poate crea efectul de animatie.
Animatia creata cu TimerEvent nu depinde de numarul de cadre pe secunda (precum la cea cu ENTER_FRAME), ci de frecventa de timp setata la utilizarea clasei Timer. Aceasta animatie poate fi afectata daca sistemul sau executia aplicatiei Flash este ocupata in momentul cand trebuie apelata functia la evenimentul TimerEvent.TIMER.


• Pasii generali pentru crearea unei animatii cu clasa Timer si evenimentul TimerEvent.TIMER sunt urmatorii:
  1. Se creaza instanta de obiect la clasa Timer, la argument se adauga intervalul de timp (in miimi de secunda); pe langa acesta poate fi specificat si numarul de repetari.
            var nume_var:Timer = new Timer(interval, repetari);
    - Intervalul de timp poate fi setat si cu proprietatea delay, iar numarul de repetari cu repeatCount (valoarea 0 indica fara limita)
  2. Se creaza o functie care trebuie apelata periodic la declansarea TimerEvent.
            function numeFunctie(evt:TimerEvent):void {
                // Codul functiei
            }
  3. Se inregistreaza detectarea evenimentului TimerEvent.TIMER (la instanta-Timer), care apeleaza functia.
            instantaTimer.addEventListener(TimerEvent.TIMER, numeFunctie);
  4. Se aplica metoda start() la "instantaTimer". Aceasta porneste declansarea evenimentului TimerEvent.TIMER la intervalul de timp specificat.
            instantaTimer.start();

• Alt eveniment ce poate fi utilizat la clasa Timer este TIMER_COMPLETE. Acesta e declansat cand s-a efectuat complet numarul de repetari.
• Metodele clasei Timer sunt: Iata printr-un exemplu cum se aplica aceste evenimente si metode ale clasei Timer pentru a crea o animatie (Explicatii pt. codul ActionScript sunt in documentatia din script):
1. Deschideti un document Flash nou, desenati in Scena o figura geometrica sau orice desen doriti (aici s-a folosit un dreptunghi, desenata cu "Rectangle Tool") si transformati-l in Movie Clip (de la Modify - Convert to Symbol. Dati instantei din Scena (desenului transformat in MovieClip) un nume, aici e folosit "drept1" (in panoul Properties, in casuta de sus, unde e scris "<Insance Name>")
2. Dati click-dreapta pe Cadru 1 din Timeline, alegeti Actions si in panoul pt. script ActionScript adaugati urmatorul cod:
var dimens:Number = 0.12;         // Coeficient de dimensionare a obiectului (12%)
var move_y:Number = 23;           // Distanta Y de deplasare
var rotire:Number = 30;           // Grade pt. rotire

// Creare instanta la clasa Timer, cu intervalul jumatate de sec. si repetari 6
var jumpTimer:Timer = new Timer(500, 6);

// Functia care va fi apelata la evenimentul TimerEvent.TIMER
function jumpLand(evt:TimerEvent):void
{
  // Modifica dimensiunile obiectului cu valoarea coeficientului (%) de la "dimens"
  drept1.scaleX += dimens;
  drept1.scaleY += dimens;

  drept1.rotation -= rotire;        // Roteste
  drept1.y -= move_y;               // Muta pe verticala
}

// Functia care va fi apelata la evenimentul TimerEvent.TIMER_COMPLETE
function atTimerComplete(evt:TimerEvent):void
{
  // Schimba in sens opus valoarea de dimensionare si miscare pe verticala
  dimens *= -1;
  move_y *= -1;

  evt.target.reset();      // Reseteaza numarul de repetari (sa inceapa de la 0)
  evt.target.start();      // Porneste iar declansarea TIMER
}

// Inregistrare eveniment TimerEvent.TIMER, la instanta "jumpTimer"
jumpTimer.addEventListener(TimerEvent.TIMER, jumpLand);

// Inregistrare eveniment TimerEvent.TIMER_COMPLETE, la instanta "jumpTimer"
jumpTimer.addEventListener(TimerEvent.TIMER_COMPLETE, atTimerComplete);

jumpTimer.start();        // Porneste declansarea evenimentului TIMER
- Cand numarul de repetari ajunge la valoarea specificata (aici 6), se declanseaza evenimentul TimerEvent.TIMER_COMPLETE. In functia apelata de acesta (atTimerComplete) se schimba sensul miscarii animatiei, se reseteaza numarul de repetari si porneste iar detectarea TimerEvent.TIMER, care prin reset incepe de la 0. Si tot asa, se obtine o executie continua a miscarii.
    - Daca apasati "Ctrl+Enter" va apare o prezentare Flash ca aceasta:
- Pentru o miscare mai rapida, se micsoreaza valoarea data la interval (delay).

In afara de utilizarea TimerEvent.TIMER, un alt eveniment prin care se pot crea efecte de animatie cu ActionScript 3 este ENTER_FRAME, vedeti tutorialul: Animatie cu ENTER_FRAME in AS3.

- Fisierul FLA cu exemplu din acesta lectie poate fi descarcata de la: Animatie - clasa Timer.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag creaza un text ingrosat?
<q> <strong> <em>
<p>Adresa: <strong>http://CoursesWeb.net/</strong> - Tutoriale.</p>
Care din aceste coduri CSS afiseaza textul ingrosat?
text-size: 18px; font-style: italic; font-weight: 800;
#id {
  font-weight: 800;
}
Ce functie JavaScript apeleaza o alta functie, in mod repetat, la un anumit interval de timp?
setInterval() setTimeout() push()
function someFunction() { alert("CoursesWeb.net"); }
setInterval("someFunction()", 2000);
Clic pe variabila definita corect in PHP.
var vname = 8; $vname = 8; $vname == 8;
$vname = 8;
echo $vname;
Care din urmatoarele forme ale verbului "travel" (a calatori) e la timpul Prezent Perfect?
have traveled shall travel had traveled
We have traveled in space.
- Noi am calatorit (deja) in spatiu.
Care din urmatoarele forme ale verbului "pintar" (a picta) se foloseste la Trecutul Imperfect?
ir a pintar pintaba pintó
La niña pintaba un arco iris.
- Fetita picta un curcubeu.
Animatie clasa Timer

Last accessed pages

  1. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (89557)
  2. Formatare text in pagina html (36062)
  3. Curs HTML gratuit Tutoriale HTML5 (188467)
  4. Prezent perfect continuu - Exercitii si teste incepatori (15198)
  5. Pronumele in limba engleza - Pronouns (52456)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1198)
  2. Curs HTML gratuit Tutoriale HTML5 (936)
  3. Coduri pt culori (684)
  4. Creare si editare pagini HTML (550)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (505)