1.03k likes | 1.13k Views
AS3 – PART II. Cosmin Varlan. Introducere in AS3 & Hello World (nu uitati : new-> ActionScriptProject , nu altceva ). Numele fisierului trebuie sa fie la fel cu cel al clasei . Numele directorului trebuie sa fie acelasi cu cel al pachetului .
E N D
http://www.infoiasi.ro/~flash/prezentari_cerc AS3 – PART II CosminVarlan
Introducere in AS3 & Hello World (nu uitati: new->ActionScriptProject, nu altceva). Numelefisieruluitrebuiesa fie la fel cu cel al clasei. Numeledirectoruluitrebuiesa fie acelasi cu cel al pachetului. Pentru a puteautiliza o clasaexternatrebuiesa o importam, aplicatiaprincipalamereuvaextinde Sprite (sauMovieClip). http://www.infoiasi.ro/~flash/prezentari_cerc Reamintim ca….
Constructorulestemetodacevafiapelata la creareaobiectuluisi are acelasinume ca siclasa (sau ca fisierul in care se afla). • Proprietatilesimetodeleclaseivorfi de tip: • public: accesibil de oriunde; • private: accesibilnumai in clasacurenta; • protected: accesibil in clasacurentasi in celece o extind; • internal: accesibilnumai in cadrulpachetului http://www.infoiasi.ro/~flash/prezentari_cerc Reamintim ca….
uint – intregfarasemnpe 32 biti Int – intreg cu semnpe 32 biti Number – numar real pe 64biti Boolean – valoribooleene: true / false String – siruri de caractere http://www.infoiasi.ro/~flash/prezentari_cerc Variabilelecelemai simple…
Candvomutiliza o proprietate in interiorulclaseisinumaiacolovafideclarata PRIVATA ! Atuncicandconstruim o clasa, trebuiesa ne gandim la REUTILIZABILITATE (da, simie mi-a fostgreusascriucuvantu’ asta). As dorisa am o proprietatepublicadar mi-e fricasa nu ma trezesc cu valorianormale in ea… (de exempluvitezasa nu depaseasca 300 sisa nu fie negativa) http://www.infoiasi.ro/~flash/prezentari_cerc Proprietateprivatasaupublica ?!
Pentru a nu finegativa, o facemuint.. Simplu Pentru a nu depasi 300 … IDEI CINEVA ?!?! http://www.infoiasi.ro/~flash/prezentari_cerc Proprietateprivatasaupublica ?!
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Dacaparametrulprimitestemaimicdecat 300 atuncivoi face _vitezasa fie 300… e clasaMasina, nu Racheta…
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Hei, eu ma simtignorata…
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Paichiaresti, eufacacelasilucru ca si tine dar in maiputinecuvinte
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Dacaiestemaimicdecat 300 ii voiatribuivaloarea de dupasemnulintrebarii, altfelce e dupadouapuncte … sâcsâc :D
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Dacacinevavainstantia un obiect de tip Masina, euvoiputeafiapelata ca un parametru public al acestuiobiect.
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Adica am puteaavea (in aplicatie): varmasina:Masina = new Masina(); masina.viteza = 200; Ultimalinie e in loc de masina.viteza(200);
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… De faptvoi seta valoareaproprietatii private Iareuvoireturnavaloareaproprietatii private
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Dacaaparin stangauneiexpresii, voi seta valoareaproprietatii private _viteza. Dacasuntapelata in dreaptauneiexpresii, voireturnavaloareaproprietatii private _viteza.
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Ca Setter, mereuvoiavea un singurparametru de intrare (poatefisi de tip Object) sivoireturna void (nimic)… sunt egoist ! Ca Getter, nu am nevoie de parametri… totusivoireturnamereuvaloareaproprietatiice o reprezint. Functiile de tip get / set vorfi MEREU declarate public !
http://www.infoiasi.ro/~flash/prezentari_cerc Metodespeciale de tip set / get… Cu acestefunctii as puteaconsidera ca am o proprietate “viteza” publica, sicandcinevaincearcasaaflevaloareaacesteiavoiapelagetter, cand o va seta voiapelasetterul.
http://www.infoiasi.ro/~flash/prezentari_cerc Si scriptul din care facemapelul… Flex trateazaviteza ca o proprietatepublica a obiectului.
http://www.infoiasi.ro/~flash/prezentari_cerc Si scriptul din care facemapelul…
Canddorimsarestrictionamsausainterogamproprietati ale obiectelorestebinesafacemacestlucruprinsetteri / getteri. Faceti private datele private, faceti private sipecelepublicesipuneti-le setteri/getteri [eurecunosc ca sunt cam puturossi le facpublice] http://www.infoiasi.ro/~flash/prezentari_cerc Concluzii:
Impotrivavalorilorneplacute… :D Dacaavem o proprietatecepoateaveadoarvalorile “Rosu” si “Verde” se vordeclaraconstante care saaibaacestevalori. http://www.infoiasi.ro/~flash/prezentari_cerc Altemetode de a ne protejaproprietatile
http://www.infoiasi.ro/~flash/prezentari_cerc O clasace are o functiecevrea o culoare Aici s-arputeadasi “rosu” si “Rosu”. Mie imi place cu R mare :D
http://www.infoiasi.ro/~flash/prezentari_cerc Posibilitatilesuntrecunoscute in aplicatie: Putempune direct constantasi nu riscamsagresim…
Figurageometricavafiimplementata la nivel formal (nu vorfidesenateefectivobiectele in scena). Pachetul se vanumi “geometrie”, claselevorfi: Cerc, Dreptunghi, Patrat. Fiecarevacontinemetoda “toString” cevareturnatipulfigurii ca un String simetoda “aria” cevareturna un Number reprezentand aria figurii. Stiecinevadefinitiapatratului ?!?! (gen proxim: dreptunghi; diferentaspecifica: laturialaturateegale) … [de ce am intrebatasta ?] http://www.infoiasi.ro/~flash/prezentari_cerc O nouaaplicatie cu figurigeometrice…
Simplu: class Patrat extends Dreptunghi http://www.infoiasi.ro/~flash/prezentari_cerc Am putea face patratulsa fie extins din dreptunghi – cum ?
http://www.infoiasi.ro/~flash/prezentari_cerc Am douadimensiuni… doarsuntdreptunghi
http://www.infoiasi.ro/~flash/prezentari_cerc Valoripredefinite (daca nu suntdatiparametri)
http://www.infoiasi.ro/~flash/prezentari_cerc Voiverificadacasuntdate cum trebuielungimea/latimea
http://www.infoiasi.ro/~flash/prezentari_cerc Verificamdacadimensiunea data estemai mare ca 0.
http://www.infoiasi.ro/~flash/prezentari_cerc Eucalculezaria
http://www.infoiasi.ro/~flash/prezentari_cerc Iareureturneaztipulfigurii…
http://www.infoiasi.ro/~flash/prezentari_cerc Patratulvaextindedreptunghiul. Cum stiepatratulsaextindadreptunghiuldaca nu a facut import la aceastaclasa ??
http://www.infoiasi.ro/~flash/prezentari_cerc Clasele din acelasipachetstiuunele de altele (de aceea nu estenevoie de import)
http://www.infoiasi.ro/~flash/prezentari_cerc Patratul are o singuradimensiunecepoatefiprimita ca parametru al constructorului…
http://www.infoiasi.ro/~flash/prezentari_cerc Vomapelaconstructorulsuperclasei in mod explicit utilizandmetoda super. Sa nu uitam ca pentrudreptunghisuntnecesaredouadimensiuni….
http://www.infoiasi.ro/~flash/prezentari_cerc Putem face iarasi un setter pentrulatura….
http://www.infoiasi.ro/~flash/prezentari_cerc ArmaitrebuimetodeletoStringsiaria. Acesteasuntmostenite din clasaDreptunghisi de fapt le avemsiaici. Sa trecem la construireaclaseiprincipale in care vominstantiaobiectele de tip patratsidreptunghi.
http://www.infoiasi.ro/~flash/prezentari_cerc Clasaprincipala… Eusunt un obiect de tip Dreptunghi Eusunt un obiect de tip Patrat
http://www.infoiasi.ro/~flash/prezentari_cerc Clasaprincipala… Constructorulmeu are 2 parametri Al meudoar 1 darstiueusailduplic ca sailfolosescpe Dl. Dreptunghi
http://www.infoiasi.ro/~flash/prezentari_cerc Clasaprincipala… Ambeleobiecte au implementatametoda “aria” Aria Patratuluiestemostenita din Dreptunghi. De faptpatratulpoateficonsideratsi el tot obiect de tip Dreptunghicaruiai-am facutlaturileegale
http://www.infoiasi.ro/~flash/prezentari_cerc Clasaprincipala… Rezultatulvafivizibil in Consola UPS … astaparca era patrat
http://www.infoiasi.ro/~flash/prezentari_cerc Clasaprincipala… Solutia esteeee…. … suprascriereametodeitoString();
http://www.infoiasi.ro/~flash/prezentari_cerc Suprascriereauneimetode: override Eu pot permiteunuiobiectceesteextinsdintr-o clasasasuprascrie o functie din clasainitiala.
http://www.infoiasi.ro/~flash/prezentari_cerc Suprascriereauneimetode: override Totusi pot face astadeoarece ma lasaclasaDreptunghi. Daca in DreptunghimetodatoStringarfifostdelcarata de tip final, voi produce o eroare…
http://www.infoiasi.ro/~flash/prezentari_cerc Dacaarfiasa… s-ar produce o eroare Dreptunghi Patrat
http://www.infoiasi.ro/~flash/prezentari_cerc Revenim la programul principal… OOOO DAAAA
http://www.infoiasi.ro/~flash/prezentari_cerc ClasaCerc?!?! Eu nu mostenescfunctiilearia, toString, le voirescrie…
http://www.infoiasi.ro/~flash/prezentari_cerc Din nou in aplicatie…
Toateobiectele au o metodatoStringsiuna aria. Dacastiu ca toateobiectelegeometrice au acestemetode, as putea face o functie care saprimeascaparametru un obiect geometric sisapoatasaapelezetoStringsau aria ? [ca sa nu scriu de 3 oritrace( “Obiectul”…. );] http://www.infoiasi.ro/~flash/prezentari_cerc Problema…
Probabil ca s-arputea [altfel nu si-ar bate nimenicapul cu creatul de sliduriinutile:D] Se poate… daratuncice tip de obiectvaprimifunctia ca parametru ?! http://www.infoiasi.ro/~flash/prezentari_cerc Problema…
Nu primeste un tip de obiectci o Interfata. “Interfataeste un dispozitivcepoate face ca douadispozitivece nu suntcompatibilesapoatacomunica.” De exemplu, monitoruleste o interfataintreomsi calculator. La felsunttastaturasimouseul. Aiciestevorba de o interfatapentru o functie… http://www.infoiasi.ro/~flash/prezentari_cerc Problema…