Actionscript je vrsta objektno orjentisanog programskog jezika. Zapravo, OOP je nešto što je poznato kao metodologija programiranja, što u osnovi znači da je to samo jedan od načina osmišljavanja i kreiranja rešenja za programerske probleme.

Možemo reći da postoje dve glavne metodologije programiranja: proceduralno i objektno orjentisano programiranje. Najveći broj klasičnih programskih jezuka kao što su Fortran, Pascal i C, zasnivaju se na proceduralnom metodu. To znači da ovi jezici rešavaju probleme u maniru korak po korak. U proceduralnim jezicima određeni deo programa, ako ga često koristite, možete izdvojiti u nešto što se naziva funkcija.

Funkcije nisu ništa drugo no delići programa koji se često koriste. One u stvari ništa ne rade dok ih ne pozovete. Kada pozovete funkciju, možete joj proslediti informacije ili vrednosti koristeći parametre ili argumente. Ona prihvata zadate parametre i vraća rezultate u skladu sa njima.

Mada se proceduralni jezici i dalje upotrebljavaju, oni „pate" od nekih karakterističnih problema. Prvo, iako se funkcije u proceduralnom programiranju mogu koristiti više puta, one ne omogućavaju ponovnu upotrebu većeg dela proceduralnog programa. Zbog toga je najveći deo programa krajnje specijalizovan.

Ova specijalizacija stvara probleme. Ukoliko niste autor programa, možete izgubiti mnogo vremena u pokušajima da zaista razumete šta određeni deo programa radi. Problem se sastoji u tome da morate da razumete skoro svaku liniju programa pojedinačno kako biste razumeli program u celosti.

Sve ovo vodi do krajnjeg problema u vezi sa proceduralnim programiranjem: činjenica je da je sve fokusirano na procedure. U programiranju su podaci ili informacije, podjednako važni kao i sam program. Postoje određene relacije između podataka i programa koje proceduralni jezici ignorišu.

Kao odgovor na pomenute i još neke probleme, stvoreno je objektno orjentisano programiranje kao i mnogi novi jezici: Java, C++, Javascript i Actionscript. Svaki od njih implementira OOP na različite načine, ali ono što je zajedničko za sve jeste to da su bazirani na objektima.

 

Objekti, svojstva i metodi

Objekat je kolekcija međusobno povezanih podataka i programa. Delovi programa unutar objekta se nazivaju metodi, a delovi podataka ili informacija unutar objekta su svojstva.

Recimo da želite da napravite igru za simulaciju auto-trka. U proceduralnom jeziku morali biste da pazite na mnoštvo podataka, brzinu svakog automobila posebno, boju, proizvođača, model itd. Takođe bi vam bio potreban veliki broj funkcija da biste kontrolisali svaki automobil, kao što su upravljanje, uključivanje i isključivanje farova, ubrzavanje i kočenje.
U OOP jeziku jednostavno radite sa kolekcijom automobil-objekata. Možete lako da stvorite više automobil-objekata koji se ponašaju kao nacrt (Blueprint). Nacrt sadrži sve podatke o automobilu i kompletan program potreban za manipulisanje automobilom. Kada napravite novi automobil-objekat, nacrt prenosi sve informacije do novog objekta.

Na primer, svaki automobil može imati sledeća svojstva:

  • boja,
  • brzina,
  • proizvođač,
  • model.

 

a pored toga, može imati iste metode:

  • ubrzavanje,
  • kočenje,
  • skretanje,
  • uključivanje/isključivanje farova.

 

Svojstva opisuju objekat; metodi čine da objekat nešto radi. Pošto je svaki automobil-objekat stvoren iz istog nacrta, trenutna informacija unutar svakog objekta je jedinstvena i nije povezana sa vrednostima bilo kojeg drugog automobil-objekta (izuzev ako želite da tako bude). To znači da, iako svi automobil objekti imaju ista svojstva, jedan automobil može da bude plav, drugi crven.

Pošto definišete nacrt o načinu funkcionisanja vašeg objekta, na osnovu njega veoma lako možete stvarati veliki broj automobil-objekata. Ovo umnogome podseća na masovnu proizvodnju istog artikla baziranu na dizajnu samo jednog proizvoda.

 

Kreiranje i upotreba objekata

Flash koristi veliki broj ugrađenih objekata. Oni obuhvataju sve vrste objekata, počevši od najosnovnijeg među njima – objekta tipa Object, pa sve do objekta tipa XMLSocket koji obavlja prenos XML podataka preko TCP/IP Socket-a.

Kada želite da kreirate vlastiti objekat koristeći neki od ugrađenih objekata u Flash-u upotrebljavate ključnu reč new. Tako, na primer, ukoliko želite da kreirate novi niz (Array) baziran na objektu Array, treba samo da pokrenete panel Actions i da otkucate sledeće:

mojObjekat = new Array();

 

Dakle, nakon reči new odredili smo predefinisani objekat na kojem će biti baziran novi objekat. Ne samo što smo odredili naziv objekta po želji, već smo istovremeno pozvali funkciju koja će kreirati taj objekat.

Za primer ćemo uzeti objekat koji čuva spisak za kupovinu. Možemo zamisliti takav spisak kao niz, odnosno skup „redova" sa rupama u kojima se čuvaju promenljive.
 
Prvi korak je da kreirate niz, a zatim da ga popunite. Objekat Array ima već definisano svojstvo length koje sadrži broj elemenata niza.

Niz ćete kreirati jednostavnom akcijom:

Lista = new Array();

 

Tako kreiran niz je još uvek prazan pa sada prelazimo na akcije kojima ćemo popuniti niz:

Lista[0] = "hleb";
Lista[1] = "mleko";
Lista[2] = "voce";

 

Ovime smo kreirali tri elementa niza (prvi indeks u nizu je nula), i ako sada upisemo akciju za listanje elemenata niza, videćemo da li je sve u redu:

trace (Lista.length);
for (i=0; i<Lista.length; i++) {
trace (Lista[i]);
}


Šta se ovde dešava? Prvim redom mi ispisujemo dužinu niza, tj broj elemenata niza. Zatim uvodimo brojač (i) koji uzima vrednosti od nule do najvećeg indeksa niza i ispisujemo element niza sa tim indeksom u svakom ciklusu.

Kao rezultat u Output panelu bi trebalo da piše:

3
hleb
mleko
voce

 

Kao što vidite, ovde smo upotrebili ugrađeno svojstvo objekta Array koje ima naziv length i koje prikazuje broj elemenata niza. Osim ugrađenih svojstava, ovaj objekat ima i ugrađen metod za dodavanje elemenata niza push.

Ukoliko dodamo još jednu liniju koda:

Lista.push("deterdzent");

 

zapravo ćemo dodati novi element na kraj tog niza. Ako sada izlistamo sadržaj niza, videćemo da se i ovaj element nalazi u nizu.

Dakle, kompletan kod treba da izgleda ovako:

Lista = new Array();
Lista[0] = "hleb";
Lista[1] = "mleko";
Lista[2] = "voce";
Lista.push("deterdzent");

trace ("Prva lista: " + Lista.length);
for (i=0; i<Lista.length; i++) {
trace (Lista[i]);
}

 

U prvom delu koda kreiramo niz i njegove elemente, a u drugom delu samo listamo sadržaj niza. Poenta je da svi ugrađeni objekti u Flash-u imaju svoja svojstva i metode koje je potrebno naučiti kako biste efikasno koristili te objekte.

 

Spisak nekih ugrađenih objekata sa svojsvima i metodima

Objekat Array

Konstruktor:

new Array()
new Array(length)
new Array(element0, ... elementN)

Dakle, mogu se odmah kreirati i elementi niza.

 

Metode:

  • mojNiz.pop() – uklanja poslednji element iz niza i vraća njegovu vrednost,
  • mojNiz.reverse() – menja raspored elemenata u nizu (prvi i poslednji menjaju mesto, drugi i pretposlednji itd.),
  • mojNiz.sort() – sortiranje niza bez pravljenja kopije,
  • mojNiz.toString() – vraća elemente niza u obliku String-a,
  • mojNiz.shift() – uklanja prvi element iz niza i vraća njegovu vrednost,
  • mojNiz.unshift(vrednost0,...,vrednostN) – dodaje elemente na početak niza i vraća novu dužinu,
  • mojNiz.slice(pocetak, kraj) – vrši izvlačenje elemenata niza koji se nalaze između elementa niza sa rednim brojem početak do elementa niza sa rednim brojem kraj.

 

Objekat Date

Konstruktor:

new Date()
new Date (godina, mesec, dan, cas, minut, sekunda, milisekunda)

Kreira novi objekat Date (datum) koji čuva trenutni datum i vreme ili datum koji korisnik odredi.

 

Metode:

  • mojDatum.getDate() – vraća redni broj dana u mesecu,
  • mojDatum.getDay() – vraća redni broj dana u nedelji,
  • mojDatum.getFullYear() – vraća godinu u četvorocifrenom formatu,
  • mojDatum.getHours() – vraća čas,
  • mojDatum.getMinutes() – vraća minute,
  • mojDatum.getMonth() – vraća redni broj meseca u godini,
  • mojDatum.setDate (dan) – postavlja redni broj dana u mesecu i vraća novo vreme u milisekundama,
  • mojDatum.setFullYear(godina, mesec, dan) – postavlja godinu i vraća novo vreme u milisekundama. Ako su zadati i dodatni parametri mesec i dan, i oni se postavljaju.

 

Objekat Key

Metode:

  • Key.addListener(noviOsluskivac) – registruje objekat za prijem obaveštenja o događajima onKeyDown i onKeyUp,
  • Key.getAscii() – vraća ASCII kod poslednjeg pritisnutog ili otpuštenog tastera,
  • Key.getCode() – vraća kod tastera koji je poslednji pritisnut,
  • Key.isDown(kodTastera) – vraća true ako je otpušten taster čiji je kod zadat kao vrednost parametra.

 

Sintaksa osluškivača:

noviOsluskivac = new Object();
Key.addListener(noviOsluskivac);
noviOsluskivac.onKeyDown = function() { .... }
noviOsluskivac.onKeyUp = function() { ... }

 

Funkcije služe kako bi nosile akcije koje će se pokrenuti na pritisak odnosno puštanje tastera.

 

Objekat MovieClip

Metode:

  • mojMC.createEmptyMovieClip(nazivMC, dubina) – kreira prazan MovieClip simbol sa Instance Name-om koji je definisan,
  • mojMC.duplicateMovieClip(noviNaziv, objekat) – kreira novu kopiju određenog MovieClip simbola u toku prikazivanja filma. Kopirani simbol uvek počinje prikazivanjem od frejma 1,
  • mojMC.getBytesLoaded() – vraća broj učitanih bajtova,
  • mojMC.getBytesTotal() – vraća ukupan broj bajtova MovieClip simbola,
  • mojMC.gotoAndPlay(frejm) – započinje prikazivanje filma od određenog frejma,
  • mojMC.hitTest(cilj) – proverava da li je MovieClip simbol preklopljen sa oblašću koju predstavlja parametar cilj,
  • mojMC.startDrag(katanac, levo, gore, desno, dole) – omogućava prevlačenje (kursorom) simbola na neku drugu lokaciju. Katanac kao parametar određuje da li će simbol biti vezan za centralnu poziciju miša, a ostali parametri su opcijoni i određuju granice so kojih može biti prevlačen simbol,
  • mojMC.stopDrag() – prekida prevlačenje simbola.

 

Ovde su prikazani samo neki metodi i svojstva, a kompletne spiskove objekata sa metodama i svojstvima možete pronaći na sajtovima podrške Adobe Flash-u. Preporuka je da krenete od sajta www.actionscript.org koji predstavlja odličnu bazu za početnike u objektno orjentisanom programiranju.

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Objekti – uvod, ugrađeni objekti, spisak ugrađenih objekata sa metodama 1
  • Objekti – uvod, ugrađeni objekti, spisak ugrađenih objekata sa metodama 2
  • Objekti – uvod, ugrađeni objekti, spisak ugrađenih objekata sa metodama 3