Cercul de Rich Internet ApplicationsConstructor, getteri, setteri, toString,Display List<br />Facultatea de Informatică<br...
Data trecută… am…<br />Discutat despre variabile şi funcţii<br />Despre clase<br />Despre proprietăţi şi metode (ale obiec...
Tura asta vom…<br />Continua puţin cu constructorul (ca să mă asigur că s-a înţeles)<br />Discuta despre câteva funcţii sp...
Mulțumesc…<br />Comănescu Ștefan<br />Ionuț Striban<br />… pentru tutorialele video adăugate pe situl <br />nostru: http:/...
Setarea clasei principale<br />În AS3 nu avem metoda main ... Totuşi, din proprietăţile proiectului pot seta care clasă po...
6<br />http://www.info.uaic.ro/~flash<br />1. Click dreapta &gt; proprietati<br />2<br />3<br />
7<br />http://www.info.uaic.ro/~flash<br />4<br />
Constructor<br />8<br />http://www.info.uaic.ro/~flash<br />Astaesteclasa :D<br />
Constructor<br />9<br />http://www.info.uaic.ro/~flash<br />Constructorulesteexecutatprimul…<br />
Constructor<br />10<br />http://www.info.uaic.ro/~flash<br />Dacă aplicaţia este “default”, arputeaficonsiderata ca fiindp...
Constructor<br />11<br />http://www.info.uaic.ro/~flash<br />Un fel de main din C / C++<br />
Constructor<br />Constructorulestemetoda care se executa prima…<br />Este executată NUMAI cândestecreatobiectul (şi nu ar ...
Constructor<br />Constructorul poate avea o serie de parametri dar niciodată nu returnează nimic.<br />Atunci când clasa e...
Constructori..<br />ÎNTREBĂRI PE TEMA CONSTRUCTORILOR ?<br />14<br />http://www.info.uaic.ro/~flash<br />
Getteri / Setteri<br />În programarea obiectuală modernă, nu există variabile publice. <br />Așa cum zicea cineva data tre...
Getteri / Setteri<br />Să presupunem că avem o mașină… căreia dorim să-i schimbăm o proprietate (culoare).<br />Pentru ca ...
http://www.info.uaic.ro/~flash<br />17<br />
Getteri / Setteri<br />Scăpăm de buba dacă am utiliza o variabilă privată care să poată fi modificată doar de o metodă (pu...
Getteri / Setteri<br />Celedouăsuntfuncții speciale ce au numele proprietății pe care o substituie (în cazul nostru culoar...
Getteri / Setteri<br />Să zicem că variabila _propeste cea privată (cea care vrem să fie accesată dar prin set/get).<br />...
Exemplu: Getteri/ Setteri<br />21<br />http://www.info.uaic.ro/~flash<br />
Exemplu: Getteri/ Setteri<br />22<br />http://www.info.uaic.ro/~flash<br />Proprietateaprivată – nu poate fi accesată din ...
Exemplu: Getteri/ Setteri<br />23<br />http://www.info.uaic.ro/~flash<br />Proprietateaprivată<br />
Exemplu: Getteri/ Setteri<br />24<br />http://www.info.uaic.ro/~flash<br />Accesibil ca și cum ar fi proprietatea culoare<...
Exemplu: Getteri/ Setteri<br />25<br />http://www.info.uaic.ro/~flash<br />Acum în setter putem verifica validitatea culor...
Exemplu: Getteri/ Setteri<br />26<br />http://www.info.uaic.ro/~flash<br />Pentru a prelua culoarea utilizăm getterul<br /...
Getteri / Setteri<br />Dacă “proprietatea” este apelată în “stânga” se apelează automat setterul:<br />masina.culoare = “a...
toString()<br />Atunci când clasa este utilizată într-o operație drept șir de caractere, reprezentarea acestuia ca String ...
toString()<br />Atunci când clasa este utilizată într-o operație drept șir de caractere, reprezentarea acestuia ca String ...
toString()<br />Dacă nu este suprascrisă, metoda toString() va afișa ceva de genul[object &lt;tipObiect&gt;], undetipObiec...
Exemplu toString()<br />31<br />http://www.info.uaic.ro/~flash<br />
PAUZĂ ?<br />32<br />http://www.info.uaic.ro/~flash<br />
Ierarhia de obiecte din scenă<br />33<br />http://www.info.uaic.ro/~flash<br />
Obiecte grafice <br />Obiectele grafice sunt de două tipuri:<br />- scalare sau raster (fiecare pixel este reprezentat în ...
Obiecte grafice <br />              Raster                    vs.         Vectorial<br />                 a               ...
Obiecte grafice <br />E clar că pentru a reprezenta un obiect raster e nevoie de mai multă memorie / spațiu de stocare.<br...
Obiecte grafice <br />Raster – bune pentru: poze (din lumea reală), aplicare de filtre de tip shadow, blur etc., afișarea ...
Obiecte grafice <br />Obiectele pe care le vedem într-o aplicație Flash sunt organizat într-o ierarhie (arborescentă).<br ...
Obiecte grafice <br />39<br />http://www.info.uaic.ro/~flash<br />
Obiecte grafice <br />40<br />http://www.info.uaic.ro/~flash<br />
AfisateNeafisate<br />41<br />http://www.info.uaic.ro/~flash<br />
addChild() – adaugă la ierarhie<br />42<br />http://www.info.uaic.ro/~flash<br />
AfisateNeafisate<br />43<br />http://www.info.uaic.ro/~flash<br />
Obiecte grafice <br />După crearea în memorie (cu new), obiectul grafic trebuie să fie adăugat în ierarhia de obiecte din ...
Obiecte grafice <br />45<br />http://www.info.uaic.ro/~flash<br />Pachetul ce conține obiectele de tip grafic (sau care au...
Obiecte grafice <br />46<br />http://www.info.uaic.ro/~flash<br />Moștenește toate porprietățile și metodele din Object<br />
Obiecte grafice <br />47<br />http://www.info.uaic.ro/~flash<br />Sau din EventDispatcher prin intermediul căreia se pot a...
Obiecte grafice <br />48<br />http://www.info.uaic.ro/~flash<br />DisplayObject aduce o serie de proprietăți cum ar fi poz...
Obiecte grafice <br />49<br />http://www.info.uaic.ro/~flash<br />În Clasa InteractiveObjectsutn definite evenimentele la ...
Obiecte grafice <br />50<br />http://www.info.uaic.ro/~flash<br />DisplayObjectContainer oferă posibilitatea adăugării obi...
Obiecte grafice <br />51<br />http://www.info.uaic.ro/~flash<br />Acestea sunt câteva containere grafice….<br />
Obiecte grafice <br />52<br />http://www.info.uaic.ro/~flash<br />Cel mai important: Stage (containerul principal). Următo...
Obiecte grafice <br />La începutul prezentării povesteam despre o clasă considerată principală (de la care se pornește exe...
Obiecte grafice <br />root-ul este adăgat automat scenei<br />Dacă un obiect grafic este adăugat ierarhiei de obiecte graf...
Întrebări ?<br />55<br />http://www.info.uaic.ro/~flash<br />
Upcoming SlideShare
Loading in …5
×

Cercul De Rich Internet Applications Constructor, Getter,Setter, Display List

1,169
-1

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,169
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cercul De Rich Internet Applications Constructor, Getter,Setter, Display List

  1. 1. Cercul de Rich Internet ApplicationsConstructor, getteri, setteri, toString,Display List<br />Facultatea de Informatică<br />Iași<br />
  2. 2. Data trecută… am…<br />Discutat despre variabile şi funcţii<br />Despre clase<br />Despre proprietăţi şi metode (ale obiectelor)<br />Văzut ce e ăla un constructor (damaivedemşi azi)<br />Chinuit un căţel<br />Spart câteva baloane<br />2<br />http://www.info.uaic.ro/~flash<br />
  3. 3. Tura asta vom…<br />Continua puţin cu constructorul (ca să mă asigur că s-a înţeles)<br />Discuta despre câteva funcţii speciale<br />Cum se formează ierarhia obiectelor din scenă<br />3<br />http://www.info.uaic.ro/~flash<br />
  4. 4. Mulțumesc…<br />Comănescu Ștefan<br />Ionuț Striban<br />… pentru tutorialele video adăugate pe situl <br />nostru: http://flash.info.uaic.ro<br />4<br />http://www.info.uaic.ro/~flash<br />
  5. 5. Setarea clasei principale<br />În AS3 nu avem metoda main ... Totuşi, din proprietăţile proiectului pot seta care clasă poate fi rulată.<br />5<br />http://www.info.uaic.ro/~flash<br />
  6. 6. 6<br />http://www.info.uaic.ro/~flash<br />1. Click dreapta &gt; proprietati<br />2<br />3<br />
  7. 7. 7<br />http://www.info.uaic.ro/~flash<br />4<br />
  8. 8. Constructor<br />8<br />http://www.info.uaic.ro/~flash<br />Astaesteclasa :D<br />
  9. 9. Constructor<br />9<br />http://www.info.uaic.ro/~flash<br />Constructorulesteexecutatprimul…<br />
  10. 10. Constructor<br />10<br />http://www.info.uaic.ro/~flash<br />Dacă aplicaţia este “default”, arputeaficonsiderata ca fiindpunctul de plecare al aplicaţiei<br />
  11. 11. Constructor<br />11<br />http://www.info.uaic.ro/~flash<br />Un fel de main din C / C++<br />
  12. 12. Constructor<br />Constructorulestemetoda care se executa prima…<br />Este executată NUMAI cândestecreatobiectul (şi nu ar trebui să o utilizaţi ulterior)<br />Are mereu acelaşi nume ca şi clasa (care are acelaşinume ca fişierul în care este stocată)<br />Atunci când clasa este “default”, constructoruleste “running point” al aplicatiei<br />12<br />http://www.info.uaic.ro/~flash<br />
  13. 13. Constructor<br />Constructorul poate avea o serie de parametri dar niciodată nu returnează nimic.<br />Atunci când clasa este cea principală (de la care începe rularea aplicaţiei, constructorul nu are nici un parametru).<br /> Constructorul este MEREU metodă publică.<br />De câţi constructori este nevoie pentru a crea un obiect ? <br />13<br />http://www.info.uaic.ro/~flash<br />
  14. 14. Constructori..<br />ÎNTREBĂRI PE TEMA CONSTRUCTORILOR ?<br />14<br />http://www.info.uaic.ro/~flash<br />
  15. 15. Getteri / Setteri<br />În programarea obiectuală modernă, nu există variabile publice. <br />Așa cum zicea cineva data trecută, unui obiect, în mod normal, nu ar trebui să-i fie schimbate proprietățile fără a fi notificat. [binezis, Cătălin]<br />15<br />http://www.info.uaic.ro/~flash<br />
  16. 16. Getteri / Setteri<br />Să presupunem că avem o mașină… căreia dorim să-i schimbăm o proprietate (culoare).<br />Pentru ca proprietatea să poată fi schimbată de alt obiect (de exemplu obiectul “vopsitor”) ar trebui să fie declarată publică (și de tip String: “roșu”, “alb”, “verde”).<br />Dacă e publicăoricinepoatesă o acceseze (și să o modifice). Am putea avea așadar:<br />masina.culoare = castravete;<br />16<br />http://www.info.uaic.ro/~flash<br />Asta e o legumă !!!<br />
  17. 17. http://www.info.uaic.ro/~flash<br />17<br />
  18. 18. Getteri / Setteri<br />Scăpăm de buba dacă am utiliza o variabilă privată care să poată fi modificată doar de o metodă (publică) care ar putea testa dacă este vorba sau nu de o culoare validă.<br />Pentru că nu e chiar frumos să scriem de fiecare dată ceva de genul:<br />masina.schimbaCuloarea(“verde”);<br />…ci ne-ar place maidegrabă:<br />masina.culoare = “verde”;<br />… s-au inventatsetteriișigetterii<br />18<br />http://www.info.uaic.ro/~flash<br />
  19. 19. Getteri / Setteri<br />Celedouăsuntfuncții speciale ce au numele proprietății pe care o substituie (în cazul nostru culoare). Din acestmotiv, nu trebuie să existe o altă proprietate cu același nume (vom denumi proprietatea privată drept “_culoare”.<br />Metoda setter are rolul de a setaculoarea;<br />Metoda getter are rolul de a returnaculoarea.<br />19<br />http://www.info.uaic.ro/~flash<br />
  20. 20. Getteri / Setteri<br />Să zicem că variabila _propeste cea privată (cea care vrem să fie accesată dar prin set/get).<br />Și să mai zicem că proprietatea asta este de tip “tipProp”. Atunci:<br />Setterulpentru_prop trebuie neapărat să primească ca parametru o valoare de acelasi tip ca și _prop (de tip tipProp) și să nu returneze nimic.<br />Getterul nu are parametru și returnează valoarea lui _prop(deci o valoare de tip tipProp)<br /> Get / Set sunt MEREU de tip public !!!<br />20<br />http://www.info.uaic.ro/~flash<br />
  21. 21. Exemplu: Getteri/ Setteri<br />21<br />http://www.info.uaic.ro/~flash<br />
  22. 22. Exemplu: Getteri/ Setteri<br />22<br />http://www.info.uaic.ro/~flash<br />Proprietateaprivată – nu poate fi accesată din exterior<br />
  23. 23. Exemplu: Getteri/ Setteri<br />23<br />http://www.info.uaic.ro/~flash<br />Proprietateaprivată<br />
  24. 24. Exemplu: Getteri/ Setteri<br />24<br />http://www.info.uaic.ro/~flash<br />Accesibil ca și cum ar fi proprietatea culoare<br />De tip String<br />setter<br />
  25. 25. Exemplu: Getteri/ Setteri<br />25<br />http://www.info.uaic.ro/~flash<br />Acum în setter putem verifica validitatea culorii<br />Dacă e ok, o memorăm<br />
  26. 26. Exemplu: Getteri/ Setteri<br />26<br />http://www.info.uaic.ro/~flash<br />Pentru a prelua culoarea utilizăm getterul<br />Care returnează valoarea<br />
  27. 27. Getteri / Setteri<br />Dacă “proprietatea” este apelată în “stânga” se apelează automat setterul:<br />masina.culoare = “alb”;<br />Dacă “proprietatea” este apelată în “dreapta” se apelează automat getterul:<br />trace ( masina.culoare );<br />27<br />http://www.info.uaic.ro/~flash<br />
  28. 28. toString()<br />Atunci când clasa este utilizată într-o operație drept șir de caractere, reprezentarea acestuia ca String se realizează prin apelul (implicit) al metodei toString. Aceasta există în orice obiect fiind moștenită din ….. <br /> … să vedem cine știe ?!?!<br />28<br />http://www.info.uaic.ro/~flash<br />
  29. 29. toString()<br />Atunci când clasa este utilizată într-o operație drept șir de caractere, reprezentarea acestuia ca String se realizează prin apelul (implicit) al metodei toString. Aceasta există în orice obiect fiind moștenită din ….. <br />Object<br />29<br />http://www.info.uaic.ro/~flash<br />
  30. 30. toString()<br />Dacă nu este suprascrisă, metoda toString() va afișa ceva de genul[object &lt;tipObiect&gt;], undetipObiectestetipulobiectuluice a fostutilizat ca un șir de caractere.<br />Atunci când este suprascrisă (nu necesită nepăratoverride. <br />Metoda toString() trebuie NEAPARAT să fie publică, să returneze un String și NU ARE parametri de intrare.<br />30<br />http://www.info.uaic.ro/~flash<br />
  31. 31. Exemplu toString()<br />31<br />http://www.info.uaic.ro/~flash<br />
  32. 32. PAUZĂ ?<br />32<br />http://www.info.uaic.ro/~flash<br />
  33. 33. Ierarhia de obiecte din scenă<br />33<br />http://www.info.uaic.ro/~flash<br />
  34. 34. Obiecte grafice <br />Obiectele grafice sunt de două tipuri:<br />- scalare sau raster (fiecare pixel este reprezentat în memorie)<br />- vectoriale (numai anumite date importante sunt memorate in memorie, imaginea fiind construită pe baza acestora: pt un cerc: coordonatelecentruluișiraza)<br />34<br />http://www.info.uaic.ro/~flash<br />
  35. 35. Obiecte grafice <br /> Raster vs. Vectorial<br /> a a<br />a<br />35<br />http://www.info.uaic.ro/~flash<br />
  36. 36. Obiecte grafice <br />E clar că pentru a reprezenta un obiect raster e nevoie de mai multă memorie / spațiu de stocare.<br />Atunci când sunt mărite, obiectele vectoriale arată la fel de bine (nu ca cele raster care devin mozaicuri).<br />Timpul de afișare a unei imagini raster este mult mai mic… procesorul nu trebuie să gândească cum să construiască imaginea.<br />36<br />http://www.info.uaic.ro/~flash<br />
  37. 37. Obiecte grafice <br />Raster – bune pentru: poze (din lumea reală), aplicare de filtre de tip shadow, blur etc., afișarea rapidă a imaginilor<br />Vectorial – bune la afișarea unor scheme, a literelor<br />37<br />http://www.info.uaic.ro/~flash<br />
  38. 38. Obiecte grafice <br />Obiectele pe care le vedem într-o aplicație Flash sunt organizat într-o ierarhie (arborescentă).<br />Există o singură rădăcină (root).<br />root-ul este de obicei de tip Sprite (aplicația principală, cea care extinde Sprite) și este adăugat automat scenei de către player-ul Flash în momentul lansării în execuție.<br />38<br />http://www.info.uaic.ro/~flash<br />
  39. 39. Obiecte grafice <br />39<br />http://www.info.uaic.ro/~flash<br />
  40. 40. Obiecte grafice <br />40<br />http://www.info.uaic.ro/~flash<br />
  41. 41. AfisateNeafisate<br />41<br />http://www.info.uaic.ro/~flash<br />
  42. 42. addChild() – adaugă la ierarhie<br />42<br />http://www.info.uaic.ro/~flash<br />
  43. 43. AfisateNeafisate<br />43<br />http://www.info.uaic.ro/~flash<br />
  44. 44. Obiecte grafice <br />După crearea în memorie (cu new), obiectul grafic trebuie să fie adăugat în ierarhia de obiecte din scenă.<br />Acest lucru se realizează cu metoda addChild.<br />(addChild e din DisplayObjectContainer)<br />44<br />http://www.info.uaic.ro/~flash<br />
  45. 45. Obiecte grafice <br />45<br />http://www.info.uaic.ro/~flash<br />Pachetul ce conține obiectele de tip grafic (sau care au legătură cu grafica)<br />Deși publică, această clasă nu se poate instanția, ea oferind un cadru de container pentru subclasele sale<br />
  46. 46. Obiecte grafice <br />46<br />http://www.info.uaic.ro/~flash<br />Moștenește toate porprietățile și metodele din Object<br />
  47. 47. Obiecte grafice <br />47<br />http://www.info.uaic.ro/~flash<br />Sau din EventDispatcher prin intermediul căreia se pot arunca evenimente<br />
  48. 48. Obiecte grafice <br />48<br />http://www.info.uaic.ro/~flash<br />DisplayObject aduce o serie de proprietăți cum ar fi poziția imaginii sau gradul de transparență<br />
  49. 49. Obiecte grafice <br />49<br />http://www.info.uaic.ro/~flash<br />În Clasa InteractiveObjectsutn definite evenimentele la care containerul poate răspunde (click, keypressed, etc)<br />
  50. 50. Obiecte grafice <br />50<br />http://www.info.uaic.ro/~flash<br />DisplayObjectContainer oferă posibilitatea adăugării obiectelor grafice sau a altor containere grafice în interiorul său<br />
  51. 51. Obiecte grafice <br />51<br />http://www.info.uaic.ro/~flash<br />Acestea sunt câteva containere grafice….<br />
  52. 52. Obiecte grafice <br />52<br />http://www.info.uaic.ro/~flash<br />Cel mai important: Stage (containerul principal). Următorul:Sprite (probabil cel mai utilizat)<br />
  53. 53. Obiecte grafice <br />La începutul prezentării povesteam despre o clasă considerată principală (de la care se pornește execuția aplicației). <br />Această clasă extindea Sprite – deci era și ea de tip Sprite – deci un container.<br />Acest container este containerul principal, în el vom adăuga mereu obiecte – denumit și root.<br />53<br />http://www.info.uaic.ro/~flash<br />
  54. 54. Obiecte grafice <br />root-ul este adăgat automat scenei<br />Dacă un obiect grafic este adăugat ierarhiei de obiecte grafice, el este vizibil, proprietatea root va face referință către containerul principal (root), proprietatea stage va face referire chiar la scena aplicației.<br />Un obiect care nu a fost adăugat ierarhiei are proprietățile de mai sus null.<br />54<br />http://www.info.uaic.ro/~flash<br />
  55. 55. Întrebări ?<br />55<br />http://www.info.uaic.ro/~flash<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×