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 face ca optiunea din <select> sa fie selectata?
checked="checked" selected="selected" disabled="disabled"
<select name="a_name">
 <option value="val1">Optiune 1</option>
 <option value="val2" selected="selected">Optiune 2</option>
</select>
Care din aceste valori CSS creaza culoare gradient pentru fundal?
contain repeat-x linear-gradient
#id {
  background: linear-gradient(top left, #1f1, #fff, #11f);
}
Care cod creaza un array in JavaScript?
[] {} new Object()
var arr = [1, "CoursesWeb.net", "MarPlo.net"];
alert(arr[2]);
Indicati functia PHP folosita pentru redirect la alta pagina.
function() header() switch()
header("Location: http://coursesweb.net/");
exit;
Indicati articolul corect la cuvantul "garden" in propozitia: "... garden is a place with flowers".
An The A
The garden is a place with flowers.
- Gradina este un loc cu flori.
Indicati articolul corect pentru cuvantul: "jardín" (gradina)
la los el
El jardín es un lugar de flores.
- Gradina e un loc cu flori.
Intelegere OOP - Object Oriented Programming

Last accessed pages

  1. Jokes - Glume, Bancuri, Humor (2) (17325)
  2. Creare Meniu Dublu (2843)
  3. PHP Functii Anonime - Closures (925)
  4. Curs si Tutoriale JavaScript (134779)
  5. Lectia 89, Recapitulare 77-78 (81)

Popular pages this month

  1. Coduri pt culori (122)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (88)
  3. Curs HTML gratuit Tutoriale HTML5 (73)
  4. Elemente principale HTML (40)
  5. Exercitii engleza - English Tests and exercises - Grammar (39)