+ All Categories
Home > Documents > Evenimente

Evenimente

Date post: 19-Mar-2016
Category:
Upload: sinead
View: 29 times
Download: 0 times
Share this document with a friend
Description:
Evenimente. Cosmin Varlan. Ce este un eveniment ?. Un eveniment este un “moment special” din viata unui obiect . - PowerPoint PPT Presentation
48
Evenimente Cosmin Varlan 1 Cosmin Vârlan http://www.infoiasi.ro/~flash/ prezentari_cerc
Transcript
Page 1: Evenimente

1

Evenimente

Cosmin Varlan

Cosmin Vârlan

http://www.infoiasi.ro/~flash/prezentari_cerc

Page 2: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

2

Ce este un eveniment ?

• Un eveniment este un “moment special” din viata unui obiect.

• Atunci cand se produce un eveniment, toate sarcinile obiectulu sunt trecute pe planul doi, tratarea corespunzatoare a evenimentului devenind principalul scop de moment.

• Dupa tratarea corespunzatoare a evenimentului, obiectul isi continua viata de frame cu frame.

Cosmin Vârlan

Page 3: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

3

Ce este un eveniment ?

• Nu toate evenimentele sunt importante pentru un obiect:

- pe unele le intereseaza cand sunt “clicacite”- pe altele le intereseaza cand s-a incarcat o

anumita resursa- sau cand se produce o eroare, sau apare o

problema de securitate, sau cand primeste sau pierde focusul, cand este apasata o tasta etc.

Cosmin Vârlan

Page 4: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

4

Dar ce este un eveniment?

• Un eveniment este un obiect, instanta a unei clase ce extinde clasa Events.

• Evenimentul este “aruncat” printr-o procedura “dispatch”

Cosmin Vârlan

Page 5: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

5

Dispatch – in dictionar • 1. expediere, trimitere; dispath service = serviciu de expediţie (al unei

case comerciale); dispatch note = borderou de expediere;• 2. rezolvare promptă (a unei afaceri);• 3. promptitudine, rapiditate; with all possible dispatch = cu cea mai

mare promptitudine;• 4. executare (a unui condamnat), omorâre; happy dispatch = harachiri;• 5. depeşă (diplomatică, telegrafică);• 6. întreprindere de transporturi rapide;• 7. a expedia (o scrisoare, mărfuri); a trimite (un curier);• 8. a omorî;• 9. a rezolva, a lichida repede (o afacere, o chestiune);• 10. a mânca pe nerăsuflate

Cosmin Vârlan

Page 6: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

6

Daca poate fi ?

• Cine initiaza aceasta procedura ? – chiar obiectul.

• De ce ? – pentru ca toata lumea sa poata afla (intr-o oarecare masura ce a patit)

• Cine poate lua masuri ? (trata evenimentul) - Evenimentul poate fi tratat atat de obiectul

care a facut dispatch cat si de oricare dintre parintii lui.

Cosmin Vârlan

Page 7: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

7

Cum afla parintii de eveniment?

• Atunci cand obiect de tip eveniment este aruncat (aruncat = dispatch), el trece prin trei faze: capture / targeting / bubbling.

Cosmin Vârlan

Page 8: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

8

Usecase

• In scena avem un nod parinte care are doi copii:

Cosmin Vârlan

Page 9: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

9

Usecase

• Fiecare din copii are atasat evenimentul “Click”. In momentul apasarii: acestuia, evenimentul trece prin cele trei faze (capture / targeting / bubbling ).

Cosmin Vârlan

Page 10: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

10

Usecase

• Ordinea fazelor este exact cea expusa mai sus:

Cosmin Vârlan

Page 11: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

11

Usecase

Cosmin Vârlan

Capture

Page 12: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

12

Usecase

Cosmin Vârlan

Target

Page 13: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

13

Usecase

Cosmin Vârlan

Bubble

Page 14: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

14

Usecase

Cosmin Vârlan

Fratele nu poate

“vedea” eventul

Page 15: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

15

Cine poate “asculta” evenimentul ?

• Oricare din parinti• Obiectul• Din nou oricare din parinti (bubble)

Sa traducem termenii >:)1. Capture = captura2. Target = tinta3. Bubble = ecou

Cosmin Vârlan

Page 16: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

16

Let’s Code !

Cosmin Vârlan

Cele trei obiecte: un parinte, doi copii

Evenimente de click pentru

fiecare…

Page 17: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

17

Let’s Code !

Cosmin Vârlan

Aranjam in scena, desenam … chestii simple pentru

programatori AS3 asa avansati ca voi…

Page 18: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

18

Let’s Code !

Cosmin Vârlan

Functiile - listener nu fac decat trace la numele obiectului care

a capturat evenimentul

Page 19: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

19

Let’s Code !

Cosmin Vârlan

Dupa ce s-a apasat NUMAI pe primul copil

Page 20: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

20

Let’s Code !

Cosmin Vârlan

TARGET

BUBBLE

Page 21: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

21

Ce s-a intamplat cu faza de “capture”?

• Pentru a permite obiectelor-parinti sa captureze evenimentul in faza de “capture”, comenzii addEventListener ii mai trebuie un parametru (true).

• De fapt acum vom atasa listenerul numai pentru faza de capture, nu si pentru bubble.

Cosmin Vârlan

Here it is

Page 22: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

22

Re-Run !

Cosmin Vârlan

TARGET

CAPTURE

Page 23: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

23

Se pot adauga si toate fazele:

Cosmin Vârlan

Page 24: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

24

Re-Run !

Cosmin Vârlan

CAPTURE

TARGET

BUBBLE

Page 25: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

25

De ce e nevoie de toate fazele astea?

• Parintii pot trimite “mesaje” prin intermediul obiecteleor de tip eveniment catre copii (si viceversa).

• Pentru a face acest lucru trebuie totusi ca evenimentul sa permita adaugarea mesajului

• Un utilizator poate crea un obiect de tip eveniment ca instanta a unei clase (proprii) care sa extinda event… NICE!

Cosmin Vârlan

Page 26: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

26

De ce e nevoie de toate fazele astea?

• De ce ar crea un utilizator asa ceva ? - de exemplu obiectul de tip meniu pentru o

galerie foto ar putea trimite parintilor sai ca toate pozele s-au incarcat ca un eveniment:

Sa va zic ceva misto: “allMyPicturesAreLoaded”

Parintele: “UUUUuuu.. Sa te exploatam atunci”

Cosmin Vârlan

Page 27: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

27

Sa creem o clasa CustomEvent…

Cosmin Vârlan

Extindere clasica

Page 28: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

28

Sa creem o clasa CustomEvent…

Cosmin Vârlan

Un nume pentru event este un sir de caractere (de ex:

MouseEvent.CLICK == “click”)

Page 29: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

29

Sa creem o clasa CustomEvent…

Cosmin Vârlan

Se va propaga in sens invers ?(aici ar trebui sa trimitem true

cand facem obiectul de tip CustomEvent ca sa putem sa il

prindem si in faza de ecou)

Page 30: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

30

Sa creem o clasa CustomEvent…

Cosmin Vârlan

I se permite vreunui obiect sa opreasca propagarea cu “stopPropagation” sau

“stopImmediatePropagation” ?

Page 31: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

31

Sa creem o clasa CustomEvent…

Cosmin Vârlan

Apelam constructorul superclasei cu parametrii primiti

Page 32: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

32

Sa creem o clasa CustomEvent…

Cosmin Vârlan

Acest obiect nu poate “duce” nici o proprietate. Sa il facem dinamic

ca sa-i putem adauga proprietati la runtime

Page 33: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

33

WHAT NEXT?

• Dupa apasarea lui copil1, acesta va porni (intern) un timer: cu setInterval si vom apela la fiecare 500ms o functie care va genera un numar intreg intre 0 si 100. Daca numarul este divizibil cu 10 va arunca evenimentul nostru de tip CustomEvent avand proprietatea valoare setata cu valoarea numarului.

• Rescriem listenerul “evenimentCopil1”:

Cosmin Vârlan

Page 34: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

34

evenimentCopil1

Cosmin Vârlan

Apelam la fiecare 500ms

Page 35: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

35

evenimentCopil1

Cosmin Vârlan

Aceasta functie

Page 36: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

36

evenimentCopil1

Cosmin Vârlan

In care se genereaza un uint

intre 0 si 100

Page 37: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

37

evenimentCopil1

Cosmin Vârlan

Si daca este divizibil cu 10

Page 38: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

38

evenimentCopil1

Cosmin Vârlan

Ceam un obiect de tip

CustomEvent

Page 39: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

39

evenimentCopil1

Cosmin Vârlan

Evenimentul va fi identificat prin

acest String

Page 40: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

40

evenimentCopil1

Cosmin Vârlan

Ii setam o proprietate

Page 41: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

41

evenimentCopil1

Cosmin Vârlan

Si ii facem Dispatch

Page 42: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

42

Evenimentul il vom prinde mai apoi intr-unul din parinti – scena de ex:

Cosmin Vârlan

Care eveniment ? Acest eveniment!

Apel functie listener (care va primi ca

parametru un obiect de tip CustomEvent)

Page 43: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

43

evenimentCopil1

Cosmin Vârlan

Da, acesta !!!

Page 44: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

44

evenimentCopil1

Cosmin Vârlan

Care contine valoarea setata anterior !

Page 45: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

45Cosmin Vârlan

Page 46: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

46

De mai multe ori acelasi event:

• Daca pe copil1 atasam de mai multe ori evenimentul MouseEvent.CLICK, oridnea capturarii este cea a adaugarii (de fapt este creata o lista de evenimente si in aceasta lista ordinea este cea in care s-au adaugat).

• Daca vreti sa modificati prioritatea, dupa al treilea parametru reprezentand capturarea in momentul “capture”, se poate adauga un al patrulea de tip uint reprezentand prioritatea.

Cosmin Vârlan

Page 47: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

47

Weak References:

• Un ultim parametru atunci cand este adaugat un eveniment este “use weak reference” de tip Boolean. Daca obiectul caruia i-a fost adaugat evenimentul isi pierde toate referintele in mod normal acesta ar trebui sa fie colectat de garbage collector. Acest lucru se intampla fie daca ati eliminat in prealabil evenimentul fie daca ati setat ca true valoarea lui “use weak reference”.

Cosmin Vârlan

Page 48: Evenimente

http://www.infoiasi.ro/~flash/prezentari_cerc

48

Intrebari ?!?!

Cosmin Vârlan


Recommended