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 poate fi utilizat pentru a adauga stiluri CSS direct in tag-ul HTML?
type style class
<div style="width: 80%; border: 3px solid #888888;">Continut</div>
Care din metodele proprietatii CSS transform distorsioneaza elementul HTML la un anumit unghi (inclusiv continutul lui)?
translate() scale() skew()
#un_id {
  transform: skew(20deg, 25deg);
  -ms-transform: skew(20deg, 25deg);   /* IE 9 */
  -webkit-transform: skew(20deg, 25deg);   /* Safari and Chrome */
}
Clic pe functia care poate converti un obiect Date in Sir.
indexOf() toString() getDate()
var rightnow = new Date();
alert( rightnow.toString() );
Care functie aplica o alta functie la elementele unui array?
array_merge() array_search() array_map()
$arr = arra("abc", "<p>xyz</p>", "<em>PHP</em>");
// aplica functia strip_tags() ca sa stearga tag-urile HTML din fiecare element din %arr
$arr = array_map("strip_tags", $arr);
}
Cum se spune "sambata" in limba engleza?
Sunday Saturday Monday
On Saturday I visit my grandparents.
- Sambata imi vizitez bunicii.
Cum se spune "sambata" in limba spaniola?
domingo lunes sábado
Sábado visito mis abuelos.
- Sambata imi vizitez bunicii.
Animatie clasa Timer

Last accessed pages

  1. Functii predefinite si Coduri PHP (3085)
  2. dompdf (202)
  3. Ce este Lumea Reala (556)
  4. Pronumele in limba engleza - Pronouns (53844)
  5. Utilizare Bone Tool (133)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (443)
  2. Gramatica limbii engleze - Prezentare Generala (357)
  3. Exercitii engleza - English Tests and exercises - Grammar (299)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (247)
  5. Coduri pt culori (194)