Curs Flash

Conceptul OOP (Object Oriented Programming) [Programare orientata pe obiecte] are la baza impartirea codului programului in obiecte separate, care pot fi si grupate, formand astfel un alt obiect. De exemplu, rotile, cadrul, ghidonul unei biciclete sunt obiecte separate, dar unite formeaza o bicicleta, care si ea poate fi considerata un obiect. La fel si in programarea ActionScript in Flash, textul, figura geometrica, symbolul movie clip, etc., sunt considerate obiecte.
Obiectele sunt definite folosind doi identificatori primari: proprietati si metode
• Proprietatile unui obiect ii definesc caracteristicile acestuia, iar metodele sunt functii (actiuni) aplicate obiectului printr-o anumita proprietate.
De exemplu, obiectul poate fi o "casa", iar "culoare", "ferestre", "usi" pot fi considerate proprietati, si "deschidere", "inchidere" sunt metode. Aplicarea unei metode la un obiect printr-o proprietate s-ar putea traduce prin "deschidere fereastra la casa".

• In programare, "metoda()" este o functie care face parte din definitia unei clase, de aceea se foloseste cu paranteze rotunde.
• Legatura intre obiecte, proprietati si metode se face prin caracterul punct (.).
• Liniile de cod trebuie sa se termine cu un caracter punct-si-virgula (;).
Astfel, exemplul dat anterior (deschidere fereastra la casa) s-ar scrie "casa.fereastra.deschidere();".

Caracteristicile unui obiect se schimba prin proprietatile si metodele pe care le poate avea.
Atribuirea (setarea) unei valori la proprietatea unui obiect se face comform sintaxei:
          obiect.proprietate = valoare;
Aplicarea unei metode se face dupa sintaxa:
          obiect.proprietate.metoda();
De exemplu:
          patrat.width = 100;
- Obiectul este "patrat", proprietatea lui e "width" iar "100" este valoarea care i-se da.
          patrat.graphics.beginFill(0x08fe08);
- Metoda "beginFill()" este aplicata obiectului "patrat" prin proprietatea acestuia "graphics", acestea fiind unite prin caracter punct (.).
- "metoda()" fiind o functie, poate avea unul sau mai multi parametri, care se adauga intre parantezele rotunde.

Unele metode pot fi aplicate direct unui obiect, fara intermediul vreunei proprietati
    De ex.: myClip.gotoAndStop(9);
- "gotoAndStop(9)" muta cadru curent din animatia "myClip" la cadrul 9 si opreste.

• Pe langa obiecte, proprietati si metode; in OOP sunt si elemente cunoscute ca "events" (evenimente). Acestea sunt actiuni care declanjeaza executia unei functii.
De exemplu, apasarea unui buton, sau trecerea cu mouse-ul deasupra unui obiect, sunt evenimente prin care se poate porni executia unei functii.


Pe scurt, in OOP (Programarea Orientata pe Obiecte) se folosesc urmatoarele elemente:
Iata un exemplu practic, in care vor fi folosite elementele prezentate in acest tutorial. Prin apasarea unui buton se va schimba lungimea si pozitia unui patrat.
- Observati cum sunt folosite elementele OOP: obiect, proprietate, eveniment; si cum se face legatura intre obiecte din Scena si script.
1. Deschideti un document Flash nou (ActionScript 3.0) si desenati in scena un patrat.
2 Transformati patratul in Symbol Movie Clip (din meniul Modify -> Convert to Symbol, la Type puneti Movie Clip), apoi dati instantei acestui Movie Clip (patratul din Scena) numele patrat.
  - Numele unei instante se da (se scrie) in panoul Properties, in casuta din partea de sus, unde este "<Instance Name>".
Numele dat astfel unui obiect din Scena este unealta prin care se poate face legatura dintre el si codul ActionScript. Acel nume va reprezenta in script obiectul respectiv.
3 Langa patrat desenati si un cerc (dupa cum se vede in imaginea de mai jos) pe care-l transformati in Buton (din meniul Modify -> Convert to Symbol, la Type alegeti Button), apoi dati-i ca nume de instanta buton (ca la patrat, in casuta din Properties apartinand instantei cerc).
Exemplu intelegere OOP
4. Dati click-dreapta pe primul Cadru din Timeline (la care sunt de fapt create cele 2 obiecte din Scena) si alegeti Actions.
5. In fereastra care se deschide (pt. scriere cod ActionScript) adaugati urmatorul cod AS3:
// Comanda pt. apelarea functiei "setWidth()" cand e apasat (CLICK) obiectul "buton"
buton.addEventListener(MouseEvent.CLICK, setWidth);

// Se defineste functia "setWidth()"
function setWidth(evt)
{
  patrat.width = 115;     // Da o valoare proprietatii "width" (lungime) a obiectului "patrat"
  patrat.y = 100;     // Da o valoare proprietatii "y" (distanta Y, fata de marginea de sus) a obiectului "patrat"
}
6. Apasati "Ctrl+Enter" pentru a vedea rezultatul, prezentarea Flash obtinuta.
Va apare ceva asemanator cu prezentarea urmatoare (apasati click pe buton, cercul galben):
Fisierul FLA cu acest exemplu poate fi descarcat de la: Exemplu intelegere OOP.
- Comanda "addEventListener()" este o functie din ActionScript 3 pentru lucru cu evenimente. Aceasta primeste ca parametrii evenimentul (aici "MouseEvent.CLICK") si functia care va fi apelata cand este produs acel eveniment (aici functia "setWidth()"). Conecteaza evenimentul cu functia , si este adaugata la obiectul "buton" (prin caracterul punct "."), care reprezinta cercul din scena (instanta la care s-a dat numele "buton").
- "MouseEvent.CLICK" este o constanta ce precizeaza exact evenimentul la care se apeleaza functia.
- Functia "setWidth()" executa codul scris intre acoladele ei ( {} ) cand este apelata. Aici sunt doua linii de cod.
          - "patrat.width" - defineste (schimba) valoarea proprietatii "width" (lungime) a obiectului "patrat" (acesta fiind instanta din scena la care s-a dat numele "patrat").
          - "patrat.y" - defineste (schimba) valoarea proprietatii "y" (distanta Y, fata de marginea de sus) a obiectului "patrat".
Despre functii veti putea invata mai multe in lectiile urmatoare; aici e folosita doar pentru intelegerea utilizarii evenimentelor.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care atribut specifica metoda HTTP de trimitere (GET, POST) a datelor din formular?
action method value
<form action="script.php" method="post"> ... </form>
Ce proprietate CSS adauga umbra la chenar?
background-image box-shadow border-radius
#id {
  background-color: #bbfeda;
  box-shadow: 11px 11px 5px #7878da;
}
Clic pe functia care elimina primul element dintr-un array?
pop() push() shift()
var fruits = ["mar", "cireasa", "banana"];
fruits.shift();
alert(fruits.length);           // 2
Indicati functia cu care se poate verifica daca un anumit modul e instalat in PHP.
function() filetype() extension_loaded()
if(extension_loaded("PDO") === true) echo "PDO este valabil."
Alegeti verbul auxiliar corect care trebuie in propozitia: " ... I listen to music?".
has have Can
 Can I listen to music?
- Pot asculta muzica?
Alegeti verbul corect care trebuie in propozitia: "Me ... las frutas dulces"
están gustan gusta
Me gustan las frutas dulces.
- Imi plac fructele dulci.
Intelegere OOP - Object Oriented Programming

Last accessed pages

  1. Subjunctivul vs indicativ-prezent - substantive (341)
  2. Operatori in JavaScript (6811)
  3. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (83193)
  4. Proverbe, expresii si zicatori (18986)
  5. Viitoru continuu - Exercitii si teste incepatori (5590)

Popular pages this month

  1. Exercitii engleza - English Tests and exercises - Grammar (318)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (297)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (260)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (199)
  5. Curs HTML gratuit Tutoriale HTML5 (169)