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 tag adauga imagine in pagina web?
<div> <img> <span>
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS afiseaza textul inclinat?
font-style: italic; text-decoration: underline; font-weight: 500;
#id {
  font-style: italic;
}
Clic pe functia jQuery care ascunde animat un element HTML.
click() hide() show()
$(document).ready(function() {
  $(".a_class").click(function(){ $(this).hide("slow"); });
});
Clic pe functia definita corect in PHP.
fname function() {} function fname() {} function $fname() {};
function fname($a, $b) {
  echo $a * $b;
}
Indicati forma pentru Prezent Perfect Continuu a verbului "to walk" (a merge).
have walked have been walking be walking
I have been walking for 5 hours.
- Merg pe jos de 5 ore.
Indicati Trecutul Nedefinit pentru verbul "ser" (a fi) la forma Yo.
será sería fui
Yo fui entrenador.
- Am fost antrenor.
Animatie clasa Timer

Last accessed pages

  1. Accentul si Pronuntia (27427)
  2. Proverbe, expresii si zicatori (23261)
  3. Liste HTML - UL, OL (10635)
  4. Verbe reflexive 1 (10796)
  5. Functii predefinite si Coduri PHP (3074)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1358)
  2. Exercitii engleza - English Tests and exercises - Grammar (1085)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (1079)
  4. Gramatica limbii engleze - Prezentare Generala (1030)
  5. Prezentul simplu - Exercitii si teste incepatori (887)