1 / 48

Evenimente

Evenimente. Cosmin Varlan. Ce este un eveniment ?. Un eveniment este un “moment special” din viata unui obiect .

gayora
Download Presentation

Evenimente

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://www.infoiasi.ro/~flash/prezentari_cerc Evenimente CosminVarlan

  2. http://www.infoiasi.ro/~flash/prezentari_cerc Ceeste un eveniment ? • Un evenimenteste un “moment special” din viataunuiobiect. • Atuncicand se produce un eveniment, toatesarcinileobiectulusunttrecutepeplanuldoi, tratareacorespunzatoare a evenimentuluidevenindprincipalulscop de moment. • Dupatratareacorespunzatoare a evenimentului, obiectulisi continua viata de frame cu frame.

  3. http://www.infoiasi.ro/~flash/prezentari_cerc Ceeste un eveniment ? • Nu toateevenimentelesuntimportantepentru un obiect: - peunele le intereseazacandsunt“clicacite” • pealtele le intereseazacand s-a incarcat o anumitaresursa • saucand se produce o eroare, sauapare o problema de securitate, saucandprimestesaupierdefocusul, candesteapasata o tasta etc.

  4. http://www.infoiasi.ro/~flash/prezentari_cerc Dar ceeste un eveniment? • Un evenimenteste un obiect, instanta a uneiclaseceextindeclasa Events. • Evenimentuleste “aruncat” printr-o procedura “dispatch”

  5. http://www.infoiasi.ro/~flash/prezentari_cerc 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

  6. http://www.infoiasi.ro/~flash/prezentari_cerc Dacapoatefi ? • Cine initiazaaceastaprocedura ? – chiarobiectul. • De ce ? – pentru ca toatalumeasapoataafla (intr-o oarecaremasurace a patit) • Cine poateluamasuri ? (trataevenimentul) - Evenimentulpoatefitratatatat de obiectul care a facut dispatch cat si de oricaredintreparintiilui.

  7. http://www.infoiasi.ro/~flash/prezentari_cerc Cum aflaparintii de eveniment? • Atuncicandobiect de tip evenimentestearuncat (aruncat = dispatch), el treceprintrei faze: capture / targeting / bubbling.

  8. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase • In scenaavem un nod parinte care are doicopii:

  9. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase • Fiecare din copii are atasatevenimentul “Click”. In momentulapasarii: acestuia, evenimentultreceprinceletrei faze (capture / targeting / bubbling ).

  10. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase • Ordineafazeloreste exact ceaexpusamaisus:

  11. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase Capture

  12. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase Target

  13. http://www.infoiasi.ro/~flash/prezentari_cerc Usecase Bubble

  14. http://www.infoiasi.ro/~flash/prezentari_cerc Fratele nu poate “vedea” eventul Usecase

  15. http://www.infoiasi.ro/~flash/prezentari_cerc Cine poate “asculta” evenimentul ? • Oricare din parinti • Obiectul • Din nouoricare din parinti (bubble) Sa traducemtermenii >:) • Capture = captura • Target = tinta • Bubble = ecou

  16. http://www.infoiasi.ro/~flash/prezentari_cerc Let’s Code ! Celetreiobiecte: un parinte, doicopii Evenimente de click pentrufiecare…

  17. http://www.infoiasi.ro/~flash/prezentari_cerc Let’s Code ! Aranjam in scena, desenam … chestii simple pentruprogramatori AS3 asaavansati ca voi…

  18. Functiile - listener nu facdecat trace la numeleobiectului care a capturatevenimentul http://www.infoiasi.ro/~flash/prezentari_cerc Let’s Code !

  19. Dupace s-a apasat NUMAI peprimulcopil http://www.infoiasi.ro/~flash/prezentari_cerc Let’s Code !

  20. http://www.infoiasi.ro/~flash/prezentari_cerc Let’s Code ! TARGET BUBBLE

  21. http://www.infoiasi.ro/~flash/prezentari_cerc Ce s-a intamplat cu faza de “capture”? • Pentru a permiteobiectelor-parintisacapturezeevenimentul in faza de “capture”, comenziiaddEventListener ii maitrebuie un parametru (true). • De faptacumvomatasalistenerul numaipentrufaza de capture, nu si pentru bubble. Here it is

  22. http://www.infoiasi.ro/~flash/prezentari_cerc Re-Run ! CAPTURE TARGET

  23. http://www.infoiasi.ro/~flash/prezentari_cerc Se pot adaugasitoatefazele:

  24. http://www.infoiasi.ro/~flash/prezentari_cerc CAPTURE Re-Run ! TARGET BUBBLE

  25. http://www.infoiasi.ro/~flash/prezentari_cerc De ce e nevoie de toatefazeleastea? • Parintii pot trimite“mesaje” prinintermediulobiecteleor de tip evenimentcatrecopii (siviceversa). • Pentru a face acestlucrutrebuietotusi ca evenimentulsapermitaadaugareamesajului • Un utilizatorpoatecrea un obiect de tip eveniment ca instanta a uneiclase (proprii) care saextinda event… NICE!

  26. http://www.infoiasi.ro/~flash/prezentari_cerc De ce e nevoie de toatefazeleastea? • De cearcrea un utilizatorasaceva ? - de exempluobiectul de tip meniupentru o galeriefotoarputeatrimiteparintilorsai ca toatepozele s-au incarcatca un eveniment: Sa vaziccevamisto: “allMyPicturesAreLoaded” Parintele: “UUUUuuu.. Sa teexploatamatunci”

  27. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… Extindereclasica

  28. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… Un numepentru event este un sir de caractere (de ex: MouseEvent.CLICK == “click”)

  29. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… Se vapropaga in sensinvers ? (aiciartrebuisatrimitem true candfacemobiectul de tip CustomEvent ca saputemsailprindemsi in faza de ecou)

  30. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… I se permitevreunuiobiectsaopreascapropagarea cu “stopPropagation” sau “stopImmediatePropagation” ?

  31. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… Apelamconstructorulsuperclasei cu parametriiprimiti

  32. http://www.infoiasi.ro/~flash/prezentari_cerc Sa creem o clasaCustomEvent… Acestobiect nu poate “duce” nici o proprietate. Sa ilfacemdinamic ca sa-iputemadaugaproprietati la runtime

  33. http://www.infoiasi.ro/~flash/prezentari_cerc WHAT NEXT? • Dupaapasarealui copil1, acestavaporni (intern) un timer: cu setIntervalsivomapela la fiecare 500ms o functie care va genera un numarintregintre 0 si 100. Dacanumarulestedivizibil cu 10 vaaruncaevenimentulnostru de tip CustomEventavandproprietateavaloaresetata cu valoareanumarului. • Rescriemlistenerul “evenimentCopil1”:

  34. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Apelam la fiecare 500ms

  35. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Aceastafunctie

  36. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 In care se genereaza un uintintre 0 si 100

  37. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Si dacaestedivizibil cu 10

  38. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Ceam un obiect de tip CustomEvent

  39. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Evenimentulvafiidentificatprinacest String

  40. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Ii setam o proprietate

  41. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Si ii facem Dispatch

  42. http://www.infoiasi.ro/~flash/prezentari_cerc Evenimentulilvomprindemaiapoiintr-unul din parinti – scena de ex: Care eveniment ? Acesteveniment! Apelfunctie listener (care vaprimi ca parametru un obiect de tip CustomEvent)

  43. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Da, acesta !!!

  44. http://www.infoiasi.ro/~flash/prezentari_cerc evenimentCopil1 Care continevaloareasetata anterior !

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

  46. http://www.infoiasi.ro/~flash/prezentari_cerc De maimulteoriacelasi event: • Dacape copil1 atasam de maimulteorievenimentulMouseEvent.CLICK, oridneacapturariiestecea a adaugarii (de faptestecreata o lista de evenimentesi in aceastalistaordineaestecea in care s-au adaugat). • Dacavretisamodificatiprioritatea, dupa al treileaparametrureprezentandcapturarea in momentul “capture”, se poateadauga un al patrulea de tip uintreprezentandprioritatea.

  47. http://www.infoiasi.ro/~flash/prezentari_cerc Weak References: • Un ultimparametruatuncicandesteadaugat un evenimenteste “use weak reference” de tip Boolean. Dacaobiectulcaruiai-a fostadaugatevenimentulisipierdetoatereferintele in mod normal acestaartrebuisa fie colectat de garbage collector. Acestlucru se intampla fie dacaatieliminat in prealabilevenimentul fie dacaatisetat ca true valoarealui “use weak reference”.

  48. http://www.infoiasi.ro/~flash/prezentari_cerc Intrebari ?!?!

More Related