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

Weitere ähnliche Inhalte

Empfohlen

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Empfohlen (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

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

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