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
Ce atribut face un buton radio sau checkbox sa fie selectat?
checked="checked" selected="selected" disabled="disabled"
<input type="checkbox" name="a_name" value="value" checked="checked" />
Ce valoare CSS redimensioneaza imaginea de fundal pana la marimea elementului?
repeat-x contain linear-gradient
#id {
  background:url("path_to_image.png");
  background-size:contain;
  background-repeat:no-repeat;
}
Ce operator se foloseste pentru restul impartirii a doua numere?
% * /
var rest8_7 = 8 % 7;
alert(rest8_7);
Indicati functia PHP care rotunjeste numarul la valoarea intreaga mare.
floor() ceil() abs()
$nr = ceil(3.5);
echo $nr;        // 4
Indicati articolul corect la cuvantul "bike" in propozitia: "Alex wants to buy ... bike".
An The A
Alex wants to buy a bike.
- Alex vrea sa cumpere o bicicleta.
Indicati articolul nedefinit corect pentru cuvantul: "libros" (carti)
unos una un
LeĆ­ unos libros.
- Am citit niste carti.
Animatie clasa Timer

Last accessed pages

  1. Animale salbatice si de casa (464)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (275219)
  3. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (60619)
  4. Pronumele in limba engleza - Pronouns (54704)
  5. Variabile si operatori (2252)

Popular pages this month

  1. Coduri pt culori (190)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (132)
  3. Curs HTML gratuit Tutoriale HTML5 (97)
  4. Exercitii engleza - English Tests and exercises - Grammar (57)
  5. Elemente principale HTML (42)