web tehnologije 1 - actionscript -...

31
USTANOVA: Umjetnička akademija u Splitu ODSJEK: Dizajn vizualnih komunikacija KOLEGIJ: Web tehnologije 1 GODINA / SEMESTAR: II / III ACTIONSCRIPT MENTOR: STUDENT: prof. Ivica Mitrović, mr. sc. Luka Vidoš Split, 2. prosinca 2006.

Upload: others

Post on 19-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

USTANOVA: Umjetnička akademija u Splitu

ODSJEK: Dizajn vizualnih komunikacija

KOLEGIJ: Web tehnologije 1

GODINA / SEMESTAR: II / III

ACTIONSCRIPT

MENTOR: STUDENT: prof. Ivica Mitrović, mr. sc. Luka Vidoš

Split, 2. prosinca 2006.

Sadržaj: 1. Uvod u programiranje ..........................................................................................................................3 1.1. Program, programiranje, programski jezik ................................................................................3

1.2. Varijabla....................................................................................................................................3

1.3. Funkcije ....................................................................................................................................4

1.4. Klase i objekti............................................................................................................................4

2. Uvod u ActionScript .............................................................................................................................6 2.1. Što je to ActionScript.................................................................................................................6

2.2. Verzije ActionScripta.................................................................................................................7

2.3. Ključne riječi i gramatička pravila ..............................................................................................7

2.4. ActionScript panela ...................................................................................................................8

3. Upotreba ActionScripta........................................................................................................................9 3.1. Pridruživanje akcija objektima...................................................................................................9

3.2. Pridruživanje akcija gumbima ...................................................................................................9

3.3. Pridruživanje akcija Movie Clipovima........................................................................................10

3.4. Pridruživanje akcija ključnim kadrovima....................................................................................11

3.5. Script Assist ..............................................................................................................................12

3.6. Imenovanje ključnih kadrova.....................................................................................................13

3.7 Vrste akcija ................................................................................................................................14

4. Osnovni elementi ActionScripta .........................................................................................................16 4.1. ActionScript varijable ................................................................................................................16

4.1.1. Deklaracija varijable ....................................................................................................16

4.1.2. Pravila za imenovanja varijabli ....................................................................................17

4.1.3 Vrste varijabli u ActionScriptu i pridruživanje vrijednosti ..............................................18

4.1.4. Područje djelovanja varijable.......................................................................................19

4.1.5. Matematički operatori i varijable..................................................................................20

4.2. Actionscript funkcije ..................................................................................................................21

4.2.1. Ugrađene funkcije .......................................................................................................21

4.2.2. Vlastite funkcije ...........................................................................................................22

4.2.2.1. Definiranje funkcije ........................................................................................22

4.2.2.2. Pozivanje funkcije..........................................................................................22

4.3. Actionscript objekt.....................................................................................................................23

4.3.1. Točka sintaksa ............................................................................................................24

4.3.2. Metode objekta............................................................................................................25

4.3.3. Svojstva (properties) objekta.......................................................................................26

4.3.4. Ugrađeni objekti ..........................................................................................................27

5. Zaključak ...............................................................................................................................................30 6. Literatura ...............................................................................................................................................31

1. Uvod u programiranje

1.1. Program, programiranje, programski jezik

Programiranje je umjetnost i znanost na djelu. Potrebno je mnogo truda i vježbe da bi

se postalo programerom. Prvo što trebamo definirati jest što je to program. Program

je skup naredbi (kôd) koje izvršava računalo, naredbe stvaramo koristeći programski

jezik, a cijeli taj proces naziva se programiranje. Postoji više vrsta programskih jezika

od kojih su danas najzastupljeniji objektni jezici. Programski jezik se sastoji od

ključnih riječi i pravila pisanja naredbi u tom programskom jeziku (gramatika

programskog jezika). Ako bismo pokušali usporediti programski i ljudski jezik lako bi

smo zaključili da je mnogo lakše naučiti novi programski jezik nego ljudski. To je prije

svega zato što programski jezici imaju u pravilu vrlo mali skup riječi (30-ak) dok

ljudski imaju mnogo više, također gramatička pravila programskih jezika su jasno

definirana i ne ostavljaju prostora za slobodnu interpretaciju koju svakodnevno

susrećemo u ljudskim jezicima pa ih je stoga i mnogo lakše naučiti i zapamtiti. Osim

gramatike i ključnih riječi, programski jezik čine i posebne strukture pomoću kojih se

grade programi. Te strukture su varijable, funkcije, klase i objekti.

1.2. Varijabla

Varijabla je mjesto u memoriji računala koja nam omogućava privremeno

pohranjivanje podataka koji su nam potrebni tijekom izvođenja našeg programa.

Varijable imaju svoje ime i vrstu. Svaki programski jezik ima svoja gramatička pravila

za imenovanje varijabli.Vrsta varijable određuje tip podatka koji možemo pohraniti u

varijablu (tekst, broj, datum, logičke vrijednosti istina/laž, objekti,...). Varijabla se u

programu stvara deklaracijom u kojoj se definira ime i vrsta varijable. Nakon toga

varijabli možemo pridružiti vrijednost i/ili dobavljati vrijednost koja je u njoj

pohranjena.

Ime="Ivan"

BrojGodina=40

U gore navedenim primjerima Ime i BrojGodina su imena varijabli, a „Ivan" i 40

njihove vrijednosti spremljene ne njihovim memorijskim lokacijama. Valja ukazati i na

razliku između tipova podataka: tekst (kao vrijednost varijable) je u navodnicima, broj

nije.

Osim imena i vrste varijable imaju još jedno svojstvo, a to je područje djelovanja

(scope), a to znači da nisu sve varijable uvijek i svugdje dostupne unutar našeg

programa već da imaju određeno područje djelovanja. Područje djelovanja može biti

lokalno ili globalno.

Dobar primjer varijable u svakodnevnom životu je naš bankovni račun, on ima naziv

(broj tekućeg računa, npr. 110112345678), zatim ima vrstu podatka koja se u nju

sprema (iznos novca u određenoj valuti) te ima područje djelovanja tj. naš račun nije

dostupan svakome već samo nama i službenicima banke, i to samo onima koji imaju

ovlaštenje za to.

1.3. Funkcije

Funkcija je niz naredbi koje čine jednu funkcionalnu cjelinu. Postoje funkcije koje su

već napisane i dostupne su nam u bibliotekama funkcija koje većina programskih

jezika danas ima, a osim njih možemo stvarati i vlastite funkcije. Funkcije nam

omogućavaju da niz naredbi koji se često ponavlja unutar našeg programa stavimo

unutar jedne cjeline i koristimo po potrebi. Npr. ako unutar našeg programa imamo

potrebu za izračunavanjem kvadrata nekog broja, onda je puno bolja opcija da kôd

koji izvršava tu matematičku operaciju pohranimo u jednu funkciju koju onda po

potrebi pozivamo, nego da nam se taj kôd ponavlja unutar programa na više različitih

mjesta. Time se dobiva manji i efikasniji program. Funkcije se sastoje od imena te

liste parametara koje ta funkcija prima.Također, kao i kod varijabli, svaki programski

jezik ima svoja pravila za imenovanje funkcija. Lista parametara može biti i prazna.

Nakon što je funkcija pozvana, ona izvrši sve naredbe koje su u njoj napisane i kao

rezultat tih operacija može (ali i ne mora) vratit neku vrijednost kôdu koji je tu funkciju

i pozvao. Tako npr. ako imamo funkciju za izračun kvadrata nekog prirodnog broja,

ona kao parametar prima taj broj, a kao rezultat vraća vrijednost koja je kvadrat tog

broja (parametra).

1.4. Klase i objekti

U velikim, složenim programima često puta programiranje postaje naporan i

dugotrajan proces. Tome možemo donekle doskočiti ako program razdvojimo u

logičke, po mogućnosti nezavisne, cjeline. Svaka takva cjelina bila bi jedan objekt.

Nakon završetka izrade jednog objekta, programeru je bitno znati što taj objekt može

napraviti, koja su njegova svojstva, ali ne i na koji način objekt ta svojstva pohranjuje

ili na koji način obavlja svoje funkcije. Unutarnja struktura završenog objekta, koja

može biti vrlo složena, postaje nebitna i time se pojednostavljuje proces

programiranja velikih, složenih programa.

Klase i objekti danas čine osnovni koncept većine modernih programskih jezika. Za

klasu bi se moglo kazati da je samostalni program unutar programa, ona se sastoji

od niza varijabli (kod klasa se one nazivaju svojstva (properties)), te funkcija

(kod klasa se one zovu metode). Klase su nastale kao logičan koncept u želji da se

podaci i funkcije nad nekim određenim pojmom povežu u jednu cjelinu. Npr. ako

želimo programski modelirati automobil, najbolje je to napraviti upravo pomoću klasa.

U toj našoj klasi bi se mogle nalaziti varijable kao što su boja automobila, vrsta

automobila, brzina automobila, količina goriva u spremniku... Metode koje bismo

mogli imati u toj klasi bi mogle biti one koje nam vraćaju ili postavljaju vrijednosti za

upravo spomenute varijable. Što dobivamo koristeći koncept klase? Dobivamo to da

su nam svi podaci (funkcije i varijable) koje su nam potrebne za programsko

modeliranje određenog pojma ili situacije na jednom mjestu i onda nam je mnogo

lakše pisati takav kôd, koji je u tom slučaju vrlo čitljiv, što je važno kod velikih

programa te ga je lako nadograđivati i koristiti u različitim projektima. Klasa je

zapravo samo nacrt nekog tipa podatka dok sa stvarnim vrijednostima radimo preko

objekata. Dobar primjer za bolje razumijevanje klasa-objekt koncepta jest simbol-

instanca koncept. Simbol bi bio klasa, dok je njegova instanca na sceni objekt.

Sada ove osnovne koncepte današnjih programskih jezika možemo upoznati kroz

programski jezik Flasha, ActionScript.

2. Uvod u ActionScript

2.1. Što je to ActionScript

Slika 1: Flash layout

ActionScript je programski jezik pomoću kojeg možemo dodatno obogatiti naše Flash

projekte - složenim animacijama, interakcijom, optimizacijom, podacima iz baze

podataka i sl. On je, kao i većina današnjih modernih programskih jezika, objektno

orijentiran, što znači da možemo iskoristiti sve prednosti takvog načina

programiranja. Okolina unutar koje se izvršava ActionScript kôd je Flash Player, a u

programerskoj terminologiji postupak pretvaranja .fla datoteke u .swf datoteku naziva

se kompajliranje.

2.2. Verzije ActionScripta

Danas postoje dvije verzije ActionScripta, verzija 1.0, verzija 2.0 koja je dostupna od

verzije MX 2004 te verzija 3.0 koja postoji od verzije Adobe Flash Player 9.0. Osim

novih funkcionalnosti u verziji 2.0, imamo i jedan nedostatak, a to je nepotpuna

kompatibilnost programskog kôda napisanog u verziji 1.0 i onog napisanog u verziji

2.0. To znači da postoji mogućnost pogrešnog izvođenja programa u novom Flash

playeru napisanog u ActionScriptu verzije 1.0. ActionScript 3.0 je znatno brži prilikom

kompajliranja, vrlo mu je važan rad s klasama, i uveo je dosta novina.

2.3. Ključne riječi i gramatička pravila

Svaki programski jezik pa tako i ActionScript ima svoj skup ključnih riječi pomoću

kojih se stvaraju naredbe u tom programskom jeziku.

Ključne riječi ActionScripta navedene su u slijedećoj tablici:

add and break case

catch class continue default

delete do dynamic else

eq extends FALSE finally

for function ge get

gt if ifFrameLoaded implements

import in instanceof interface

intrinsic le it ne

new not null on

onClipEvent or private public

return set static super

switch tellTarget this throw

try typeof var void

while with

To su riječi sa određenom namjenom i njihovi nazivi su rezervirani a to znači da ne

smijemo niti jednom elementu (varijabli, funkciji, objektu) našeg programa dati naziv

koji odgovara nekoj ključnoj riječi.

Ovdje trebamo napomenuti i neka gramatička pravila, a prvo je da je ActionScript 2.0

case-sensitive programski jezik tj. razlikuje velika i mala slova.To znači da

ključnu riječ ne možemo napisati VaR nego samo var, kao i to da se varijable sa

nazivom mojaVarijabla i MojaVarijabla razlikuju. Drugo važno gramatičko

pravilo jest da naredbe u ActionScriptu trebamo terminirati koristeći kao terminator

točku-zarez (;). To znači da nakon svake linije programa u ActionScriptu trebamo

staviti ;.

ActionScript ne zahtjeva strogu upotrebu terminatora ali se preporuča njegova

upotreba jer u suprotnome može doći do pogrešaka u kôdu koje je ponekad teško

locirati.

2.4. ActionScript panela

Slika 2: Actions panel

Panel s akcijama (Actions panel) omogućava pregled, pisanje i pridruživanje

akcija na elemente Flash projekta. Panel aktiviramo na tri načina:

• Window → Actions

• tipkom F9

• desnom tipkom miša na objekt pa iz izbornika odaberemo Actions

Actions toolbox sadrži popis svih dostupnih akcija.

Script Navigator hijerarhijski prikazuje elemente (kadrovi, movie clip simboli, gumbi)

Flash projekta i to samo one koji imaju pridruženu neku akciju.

3. Upotreba ActionScripta

3.1. Pridruživanje akcija objektima

Akciju/akcije možemo pridružiti:

• Gumbima

• Kadrovima

• Movie Clip-ovima (ili na neki kadar unutar Movie Clipa)

Akcije mogu biti jednostavne, kao npr. naredba animaciji da prestane sa izvođenjem

(stop) ili to pak može biti cijeli skup akcija kao što je ispitivanje određenog stanja te

u skladu s njim izvođenje određenih akcija. Mnoge akcije zahtijevaju vrlo malo

programerskog iskustva, dok druge pak zahtijevaju dobro poznavanje programskih

jezika i namijenjene su naprednom programiranju. Za sve objekte vrijedi isto pravilo:

obavezno Selection tool alatom označimo željeni objekt, otvorimo prozor s akcijama

te odaberemo akciju koju želimo pridružiti označenom objektu. Kad izaberemo

željenu akciju, u prozoru pored pojavljuje se ispisana željena akcija zajedno sa

znakovima koji osiguravaju zadovoljavanje sintakse jezika. U svakom trenutku

možemo pogledati koja se akcija nalazi na nekom objektu jednostavnim otvaranjem

Actions prozora i označavanjem objekta. Akcije ne moramo odabirati iz popisa

ActionScript elemenata već ih možemo sami upisivati u okvir za upisivanje skripta ali

pri tom moramo biti oprezni da poštujemo sintaksu (pravila) pisanja ActionScript

jezika.

3.2. Pridruživanje akcija gumbima

Akcije koje najčešće pridružujemo gumbima su tzv. event (događaj) akcije, odnosno

akcije kojima neki određeni događaj nad gumbom služi kao otponac za reakciju i

izvršavanje ActionScript naredbi pridruženih gumbu. To zapravo znači da gumb

objekt ima već predefinirane evente na koje može reagirati, a na nama je da

odaberemo event koji nama treba te pomoću ActionScript jezika implementiramo

odgovarajuću akciju našeg gumba.

Događaji na koje gumb može reagirati su:

• PRESS - kad se pritisne tipka miša

• RELEASE - kad se otpusti tipka miša

• RELEASE OUTSIDE - kad se otpusti tipka miša izvan područja gumba

• KEY PRESS - kad se pritisne određena tipka na tipkovnici

• ROLL OVER - kad pokazivač uđe unutar hit područja gumba

• ROLL OUT - kada pokazivač izađe izvan hit područja gumba

• DRAG OVER - kad držimo pritisnutu tipku miša nad gumbom, izađemo izvan

područja gumba te se ponovno na njega vratimo

• DRAG OUT - kad držimo pritisnutu tipku miša nad gumbu i izađemo izvan

područja gumba

Precizan opis procedure pridruživanja akcije gumbu: prvo u ActionScript Toolboxu

odaberemo Movie Clip Control grupu akcija, zatim u njoj dvostrukim klikom miša

odaberemo akciju on te iz padajućeg izbornika odaberemo odgovarajući event koji se

zatim automatski upisuje u par zagrada koji slijede iza ključne riječi on te nama

preostaje upisati naš kôd između para vitičastih zagrada (blok naredbi). Na sljedećoj

slici vidimo gore opisani postupak u kojem smo za naš gumb objekt odabrali da

reagira na release event te smo upisali naš kôd, u ovom slučaju je to

gotoAndPlay(3); funkcija sa argumentom 3.

Slika 3: Dodavanje on akcije

3.3. Pridruživanje akcija Movie Clipovima

Kod Movie Clip simbola način postavljanja akcija sličan je postavljanju akcija na

gumb. Jedina je razlika što umjesto akcije on (događaj) postavljamo akciju

onClipEvent (događaj) koja isto određuje neke događaje koji se trebaju dogoditi da

se izvrše naredbe unutar vitičastih zagrada (blok naredbi). Na Movie Clipove, za

razliku od običnih grafičkih simbola, u mogućnosti smo stavljati akcije, ne samo na

instancu Movie Clipa koja je na sceni, već i na pojedine kadrove unutar vremenske

linije Movie Clipa.

Događaji na koje može reagirati Movie Clip objektu su:

• LOAD - kad se Movie Clip učita u animaciju

• ENTERFRAME - izvođenje akcije brzinom izmjene kadrova (framerate).

• UNLOAD - kad se Movie Clip ukloni iz animacije

• MOUSE DOWN - pritisak na lijevu tipku miša

• MOUSE UP - otpuštanje lijeve tipke miša

• MOUSE MOVE - pomak miša

• KEYDOWN - pritisak tipke na tipkovnici

• KEYUP - otpuštanje tipke na tipkovnici

• DATA - detektiranje ulaska podataka u obliku varijabli

Procedura pridruživanja akcije Movie Clipu je potpuno identična proceduri

pridruživanja akcije gumbu uz razliku da ne odabiremo akciju on već onClipEvent

pa je stoga ovdje nećemo navoditi.

3.4. Pridruživanje akcija ključnim kadrovima

Akcije možemo stavljati samo na ključne kadrove! Da smo postavili akciju na kadar

vidimo po malom slovu "a" koje se pojavljuje iznad kadra u vremenskoj liniji.

Slika 4: Postavljanje akcije na ključni kadar

Izvođenje pridruženih akcija izvodi se u trenutku kad playhead dosegne kadar s

akcijom. Potpuno je svejedno na kojem sloju se nalazi ključni kadar s akcijom pa se

zato radi bolje kontrole sve akcije mogu stavljati na zasebni sloj.

Slika 5: Postavljanje akcije na ključni kadar u zasebnom sloju

Primjer postavljanja akcija na kadar: Prilikom animiranja objekata na sceni njihova animacija se beskonačno ponavlja.

Recimo da smo animirali pojavu logotipa "UMAS" na zaslonu. Logotip se pojavljuje,

pozicionira na zaslonu i staje. Bez znanja o akcijama, ne bismo mogli zaustaviti našu

animaciju i logotip bi se nanovo animirao i pojavljivao. Akcija koja nam je za to

potrebna naziva se stop. Osim te akcije postoji i mnoštvo drugih s kojima možemo

upravljati izvođenjem animacija u Flashu.

Tako možemo npr. kod animacije lopte poželjeti zaustaviti neprestano ponavljanje

animacije. Ono što treba napraviti jest dodati novi sloj (Insert → Timeline → Layer)

na kojem ćemo u zadnjem kadru smjestiti ključni kadar. Da bismo dodali akciju u

ključni kadar dovoljno je dvostruko kliknuti na njega. Otvara se Actions panel s

popisom svih akcija koje možemo pridružiti. Odabirom željene akcije iz popisa akcija

unutar Actions panela možemo staviti akciju u ključni kadar. Nas zanima akcija stop

koja se nalazi unutar Timeline grupe koja se nalazi u Global Functions grupi.

Dvostrukim klikom miša odaberemo akciju stop i ona je smještena u naš ključni

kadar na novo dodanom sloju. Kad pokrenemo animaciju lopte CTRL + ENTER vidjet

ćemo da animacija staje kad dosegne posljednji kadar. Nije pravilo da se akcije

zadaju u posebnom sloju, one se mogu zadati i u sloju animiranog objekta.

3.5. Script Assist

Opcija Script Assist namijenjena je da bi nam pomogla pri formatiranju akcija (kôda),

točnije, da bi se izbjegle greške u sintaksi i logici pri pisanju koda koje mogu biti vrlo

česte u početku korištenja ActionScripta.

U svakom slučaju, da bi se koristili opcijom Script Assist moramo biti upoznati sa

ActionScriptom, tj. moramo poznavati metode, akcije, varijable i sl.

Da bi se prebacili u Script Assist način rada potrebno je u Actions Paneli odabrati

gumb Script Assist.

Slika 6: Script assist

Kada označimo određenu akciju u Actions Toolboxu pored kursora miša pojavit će se

opis označene akcije. Dvostrukim klikom na akciju u Actions Toolboxu ili povlačenjem

iste u okvir za pisanje skripte, željenu akciju pridružujemo objektu na sceni (gumbu ili

Movie Clipu) ili određenom ključnom kadru.

3.6. Imenovanje ključnih kadrova

Kad radimo samo s brojčanim oznakama kadrova, to brzo može postati konfuzno i

nespretno jer bilo koja promjena u početnoj ili krajnjoj točki određene animacije, ili

grupi animiranih slojeva mijenja brojeve koji su dodijeljeni pojedinim kadrovima, zato

nam Flash nudi opciju imenovanja pojedinih kadrova radi lakšeg snalaženja.

Postupak imenovanja nekog kadra jest klik mišem na njega, pa u Properties prozoru

u okvir za unos Frame upisujemo ime kadra (FrameLabel). U vremenskoj liniji taj će

kadar biti označen zastavicom pokraj koje će stajati ime tog kadra.

Sada možemo s akcijama koje referiraju na pojedini kadar (gotoAndStop) referirati

pomoću imena, a ne broja.

Slika 7: Imenovanje ključnih kadrova

3.7 Vrste akcija

Vidjeli smo neke osnovne akcije ActionScripta, a sad je vrijeme da se upoznamo sa

svim vrstama akcija koje se nalaze grupirane unutar Actions panela. Flash dijeli

akcije u 13 grupa pa ćemo ih sada malo detaljnije opisati:

Slika 8: Grupe akcija

• GLOBAL FUNCTIONS

Sadrži najčešće korištene akcije poredane u funkcijskim podgrupama

(Timeline control, Movie Clip control i si.) - Jedne od korisnijih akcija su

gotoAndPlay, gotoAndStop, stop, on, onClipEvent te getURL. Akcije

unutar ove grupe su osnovne akcije i često se koriste u Flashu jer su temelj

bilo kakve interaktivnosti i upravljanja animacijom.

• GLOBAL PROPERTIES

Sadrži globalne postavke koje vrijede za cijeli Flash projekt a možemo ih

podesiti koristeći opcije unutar ove funkcijske skupine.

• OPERATORS

Sadrži simbole i izraze kojima transformiramo varijable i/ili uspoređujemo

vrijednosti. Uključuje i osnovne matematičke operatore (+,-,*,<,>, itd.) te

logičke operatore (I,ILI,NE).

• STATEMENTS

Ovdje se nalaze sve funkcije vezane uz klase (class), objekte, varijable,

korisničko-definirane funkcije, kondicionalne naredbe (if, then, else),

petlje (loops) i sl.

• ACTION SCRIPT 2.0 CLASSES

Predefinirane klase dostupne u ActionScriptu.

• COMPILER DIRECTIVES

Dodatne direktive za kompajler. Npr. naredba #include kojom naređujemo

kompajleru da uključi specificiranu skript datoteku pri procesu kompajliranja.

• CONSTANTS

Globalne konstante za korištenje u izrazima.

• TYPES

Popis svih tipova podataka koji se mogu koristiti u pisanju ActionScript

naredbi.

• DEPRECATED

Naredbe koje bi se radi pojave novih i funkcionalnijih trebale izbjegavati.

• DATA COMPONENTS

Sadrži popis akcija za korištenje pri manipulaciji podacima (npr. podacima iz

baze podataka).

• COMPONENTS

Sadrži popis akcija za upotrebu nad svim Flash komponentama

• SCREENS

Sadrži popis akcija za upotrebu pri izradi Screen-ova.

• COLOR PICKER

Popis naredbi za rad sa bojama.

• INDEX

Abecedni popis svih ActionScript naredbi.

4. Osnovni elementi ActionScripta

4.1. ActionScript varijable

Već je u uvodu spomenuto što su to općenito varijable u programskim jezicima, a

sada ćemo upoznati tipove varijabli i naučiti ih upotrebljavati u ActionScriptu. U

ActionScriptu postoje tri osnovna tipa varijabli:

• tekstualne (String)

• numeričke (Number)

• logičke (Boolean)

4.1.1. Deklaracija varijable

Varijabla se u ActionScriptu deklarira kombinacijom ključne riječi var, zatim nazivom

varijable, te tipom varijable. Naziv i tip se odvajaju dvotočkom (to je gramatičko

pravilo ActionScripta).

Upotreba ključne riječi var i tipa varijable prilikom deklaracije nije obavezna, ali je

preporučljiva zbog sprječavanja eventualnih pogrešaka pri programiranju. Jednako

tako, ukoliko prilikom deklariranja varijable navedemo tip varijable, Actions Panel

nam „pomaže" pri pridruživanju metoda varijabli.

Slika 9: Pomoć prilikom pridruživanja metoda varijabli

Primjer: Deklarirajmo varijablu naziva broj i numeričkog tipa var broj:Number;

U ovom primjeru možemo vidjeti sljedeće:

• upotrebu ključne riječi (var)

• imenovanje varijable (broj)

• određivanje tipa varijable (Number)

• terminiranje naredbe (;)

4.1.2. Pravila za imenovanja varijabli

U ActionScriptu postoje određena pravila za imenovanje varijabli kojih se moramo

pridržavati, a to su:

• u nazivu varijable možemo koristiti samo mala i velika slova engleske

abecede, brojeve, donju crtu _ te znak $

• na prvo mjesto u nazivu varijable ne smije biti broj

• kao naziv varijable ne smijemo koristiti neku od ključnih riječi

• nikako u imenu varijable ne koristiti razmake i dijakritičke znakove čćžšđ

Dodatna napomena je da ActionScript 2.0 razlikuje mala i velika slova pa su var x:Number;

i var X:Number;

dvije različite varijable.

var prezime:String;

prezime="Horvat";

trace (Prezime);

Navedeni primjer rezultirat će pogreškom jer naredba trace pokušava koristiti

varijablu Prezime koja uopće nije definirana, tj. nije poznat njen tip niti sadrži neku

vrijednost. Ispravan kôd izgledao bi ovako:

var prezime:String;

prezime="Horvat";

trace (prezime);

4.1.3 Vrste varijabli u ActionScriptu i pridruživanje vrijednosti

U ActionScriptu imamo više vrsta varijabli, a najčešće se koriste numerički (Number),

tekstualni (String) te logički (Boolean).

Vrijednosti varijablama (nakon što su deklarirane) pridružujemo upotrebom operatora

(=).

Primjer deklaracije i pridruživanja vrijednosti varijabli: var broj:Number;

broj=5;

U ovom primjeru možemo vidjeti sljedeće:

• deklaraciju varijable ključnom riječi var

• imenovanje varijable (broj)

• određivanje tipa varijable (Number)

• pridruživanje vrijednosti varijabli (broj=5)

Primijetite da smo ključnu riječ var koristili samo kod deklaracije varijable.

Kada se jednom odredi vrsta varijable njoj se od tog trenutka može samo pridruživati

vrijednosti tog tipa, ako pokušamo pridružiti varijabli vrijednost nekog drugog tipa

(tekst, logički) Flash će prijaviti grešku i naš program se neće kompajlirati.

Primjer deklariranja tekstualne varijable: var mojTekst:String;

mojTekst="Macromedia Flash";

U ovom primjeru deklarirali smo tekstualnu varijablu (vrsta String), a kao vrijednost

smo joj pridružili tekst „Macromedia Flash". Vrijednosti se tekstualnim varijablama

uvijek pridružuju unutar navodnika. Navodnici mogu biti jednostruki (") ili dvostruki

(""), no moramo biti dosljedni pri njihovoj primjeni.

var mojTekst:String;

mojTekst='Macromedia Flash";

Gore navedeni primjer prikazuje pogrešno korištenje navodnika pri pridruživanju

vrijednosti varijabli.

Vrijednost varijable uvijek mora biti unutar istog tipa navodnika, jednostrukih ili

dvostrukih.

var mojTekst:String;

mojTekst='Macromedia Flash';

var mojTekst:String;

mojTekst="Macromedia Flash";

Primjer deklariranja logičke varijable: var logika:Boolean;

logika=true;

U ovom primjeru deklarirali smo logičku varijablu (vrsta Boolean) a kao vrijednost

smo joj pridružili true (istina). Logička varijabla može osim true imati još samo

jednu vrijednost a to je false (laž).

Primjer neispravnog rada sa varijablama: var godina:Number;

godina="1990";

Ovaj primjer generirat će pogrešku pri izvršavanju programa zato što smo varijablu

deklarirali kao numerički tip, a pridružili smo joj tekstualnu vrijednost.

4.1.4. Područje djelovanja varijable

Postoje tri područja djelovanja varijabli: Globalno, Lokalno i Timeline područje. Ako

deklariramo globalnu varijablu ona će vrijediti za cijelu animaciju, odnosno bit će

"vidljiva" svim vremenskim linijama. Lokalne varijable vrijede i postoje samo unutar

pojedinih funkcija, dok su Timeline varijable dostupne svim skriptama koje "žive" na

tom istom Timeline-u (Timeline = Vremenska linija).

Globalne varijable se deklariraju ključnom riječi _global.

4.1.5. Matematički operatori i varijable

U svakom programskom jeziku pa tako i u ActionScriptu imamo matematičke

operatore. U ActionScriptu oni su:

• operator zbrajanja +

• operator oduzimanja -

• operator množenja *

• operator dijeljenja /

• operator cjelobrojnog dijeljenja %

Do sada smo vidjeli kako varijabli možemo pridružiti konstantu kao vrijednost

(broj=5), a nakon što smo se upoznali sa matematičkim operatorima u

ActionScriptu možemo vidjeti i drugi način pridruživanja vrijednosti varijablama.

Primjer: var x:Number;

var y:Number;

x=50;

y=x*2 + 1;

Nakon što se izvrši ovaj kod, vrijednost koja je pohranjena u varijabli y je 101.

U prethodnom primjeru vidjeli smo kako vrijednosti varijablama možemo pridružiti i

pomoću matematičkih izraza, ActionScript izvršitelj prvo napravi proračun

matematičkog izraza koji se nalazi na desnoj strani znaka jednakosti te zatim rezultat

te matematičke operacije pohrani u varijablu y.

Pogledajmo i primjer sa operacijama nad varijablama tekstualnog tipa: var mojTekst1:String;

var mojTekst2:String;

var zbrojTeksta:String;

mojTekst1="Macromedia";

mojTekst2="Flash";

zbrojTeksta=mojTekst1+mojTekst2;

Nakon što se izvrši gore navedeni kôd vrijednost koja je pohranjena u varijabli

mojTekst2 jest "MacromediaFlash".

Ovaj postupak "zbrajanja" tj. spajanja stringova se naziva konkatenacija.

Kako bismo mogli postići da nam u gornjem primjeru između dviju riječi bude jedan

razmak? Pogledajmo sljedeći primjer: var mojTekst1:String;

var mojTekst2:String;

var zbrojTeksta:String;

mojTekst1="Macromedia";

mojTekst2="Flash";

zbrojTeksta=mojTekst1+" "+mojTekst2;

U ovom primjeru vidimo da se vrlo lako može postići spajanje više tekstualnih

podataka pa smo tako mi spojili vrijednost varijable mojTekst1, zatim jedna

praznina te na kraju vrijednost varijable mojTekst2. Nakon izvršenja koda u varijabli

zbrojTeksta pohranjena je vrijednost "Macromedia Flash".

4.2. Actionscript funkcije

U Actionscriptu postoje dvije vrste funkcija, ugrađene funkcije (buit in functions) te

korisnički definirane tj. one funkcije koje sami napišemo.

4.2.1. Ugrađene funkcije

U sam Flash je Macromedia ugradila mnoge gotove funkcije koje su nam na

raspolaganju, a jedino što trebamo znati je kako ih upotrebljavati. Svaka ugrađena

funkcija ima svoje ime, listu eventualnih parametara te opis što ta funkcija radi.

Primjer: getURL("http://www.umas.hr", "_blank");

U ovom primjeru pozivamo ugrađenu funkciju getURL te joj prosljeđujemo dva

parametra, prvi je adresa (putanja), a drugi je Browser Window model, odnosno

određujemo kako će se pozvana web stranica učitavati u internet pretraživaču. Kako

su oba parametra tekstualnog tipa, obavezno ih pišemo unutar navodnika, a

odvajamo ih zarezom. Na kraju naredbe, naravno, nalazi se terminator (;).

Kako znati koje su sve funkcije ugrađene u ActionScriptu, koje parametre zahtijevaju

te što je njihova namjena?

Odgovor je jednostavan, upotrebom sustava pomoći (Help) koji je ugrađen u Flash a

dostupan je pritiskom na tipku F1.

4.2.2. Vlastite funkcije

Vlastite funkcije su one koje sami napišemo u ActionScriptu koristeći pravila pisanja

funkcija, a ona su:

• funkcija se definira ključnom riječi function

• nakon toga se napiše njezin naziv a pravila nazivanja su ista kao i kod varijabli

• nakon naziva obavezno ide par zagrada u kojima se određuju eventualni

parametri koje funkcija prima

• nakon toga ide par vitičastih zagrada { } unutar kojih se pišu naredbe funkcije.

To su naredbe koje se sve izvrše u onom trenutku kad se funkcija pozove

4.2.2.1. Definiranje funkcije

Definirat ćemo vlastitu funkciju za zbroj dva cijela broja. function zbroji (var x:Number, var y:Number) {

return x+y;

}

U ovom primjeru vidimo definiranje funkcije naziva zbroji koja prima dva parametra

x,y numeričkog tipa, a unutar tijela funkcije (područje između vitičastih zagrada)

imamo samo jednu naredbu, a ta je return x+y; koja zbroji vrijednosti varijabli x i

y te ih vrati onome tko je funkciju i pozvao. Povrat vrijednosti se postiže ključnom

riječi return.

4.2.2.2. Pozivanje funkcije

U sljedećem primjeru vidjet ćemo kako upravo definiranu funkciju zbroji možemo

pozvati da nam izračuna zbroj dva broja te da nam vrati tu vrijednost. var a:Number;

var b:Number;

var zbroj:Number;

a=5;

b=6;

zbroj=zbroji(a,b);

Analizirajmo napisani kod.

Prvih pet naredbi nam je već poznato što rade, prve tri su deklaracija numeričkih

varijabli, a sljedeće dvije naredbe pridružuju konstante kao vrijednosti varijablama a i

b. Ono što je novo jest pridruživanje vrijednosti varijabli zbroj, a to smo postigli

pozivanjem funkcije zbroji, kojoj smo kao parametre proslijedili varijable a i b, a ona

nam je kao rezultat vratila zbroj te je 11 kao rezultat pohranjen u varijablu zbroj.

Funkciji se kao parametri mogu proslijediti varijable, ali i matematički izrazi te

konstante. U prethodnom primjeru isti bismo rezultat dobili da smo posljednju

naredbu napisali ovako:

zbroj=zbroji(5,6);

ili pak ovako: zbroj=zbroji(2+3,4+2);

4.3. Actionscript objekt

U srcu ActionScripta nalaze se klase i objekti. Klase su skupine podataka, kao što su

npr. zvuk, grafika, tekst ili brojčane vrijednosti koje stvaramo u Flashu da bi

kontrolirali neku animaciju. Npr. klasa Date upotrebljava se za dohvaćanje

informacija o vremenu i datumu. Array klasa koristi se za manipulaciju podacima

koji su pohranjeni u određenom redoslijedu, itd. Flash nudi određeni broj već

unaprijed definiranih klasa koje možemo koristiti u ActionScriptu. Isto tako imamo

slobodu kreiranja svojih vlastitih klasa. Da bismo koristili određenu klasu moramo od

nje stvoriti instancu. Instanca objekta je ono što koristimo u programskim linijama

ActionScripta - objekt. Puni smisao ActionScript dobiva upravo upotrebom objekata

čime dobivamo potpunu programsku kontrolu nad sadržajima animacije.

Svaka od klasa zadužena je za neku vrstu podataka:

Color - boja

Date - vrijeme

MovieClip - kontrola Movie Clipova

Sound - zvuk

Math - matematički proračuni

Array - za podatke organizirane u niz

TextField - za rad s dinamičkim tekstom

...

Objekti sami po sebi ne čine ništa osim toga što su objekti. Da bi ti objekti nešto

korisno činili pridjeljujemo im različite metode (sposobnosti) i određena svojstva

(properties).

4.3.1. Točka sintaksa

Kao i sa ostalim stranim jezicima, tako i u ActionScriptu moramo naučiti gramatička

pravila da bi mogli spajati riječi. Sintaksa točke je način na koji ActionScript spaja

objekte, svojstva i metode u izjave. Spajamo objekte, svojstva i metode točkom da

bismo opisali pojedini objekt ili proces. Također koristimo sintaksu točke da bi

identificirali ciljani put do vremenske linije nekog Movie Clipa ili varijable. Izraz sa

sintaksom točke započinje imenom objekta ili Movie Clipa/varijable, slijedi točka, a

završavamo svojstvima ili metodom objekta ili varijablom koju želimo pozvati.

Primjeri:

_x svojstvom Movie Clipa određujemo x koordinatnu poziciju instance Movie Clipa

na sceni. Izraz upućuje na svojstvo _x Movie Clip instance po imenu loptaMC.

Recimo da želimo pomaknuti instancu Movie Clipa na udaljenost od 50px od lijevog

ruba ekrana, dakle mijenjamo vrijednost njegovog svojstva _x koje određuje njegovu

horizontalnu poziciju. To ćemo učinit sljedećom naredbom: loptaMC._x=50;

Izražavanje metode nekog objekta ili Movie Clipa slijedi isti uzorak. Na primjer,

metoda play instance Movie Clipa loptaMC tjera Movie Clip da započne s

izvođenjem. loptaMC.play();

Određivanje vrijednosti varijable provodi se tako da sintaksom točke dođemo do

područja određene varijable te znakom jednakosti odredimo njenu vrijednost. shopping.obrazac.pošalji=true;

Ovaj izraz pridjeljuje varijabli pošalji boolean vrijednost true. Varijabla se nalazi u

Movie Clipu obrazac koji se nalazi u Movie Clipu shopping. Sintaksom točke

dolazimo do njenog mjesta unutar hijerarhije Movie Clipova (vremenskih linija).

4.3.2. Metode objekta

Objekte u ActionScriptu možemo usporediti s objektima u stvarnom svijetu kao što je

npr. neka osoba. Josko je jedan objekt, Marija drugi itd. Objekt samo za sebe je

objekt. On ne čini ništa. Međutim, objekti imaju određene mogućnosti (sposobnosti)

koje možemo pozvati/aktivirati. Josko može trčati, Marija može pričati itd. Kad bi to

pokušali napisati ActionScript jezikom izgledalo bi ovako: Josko.trci();

Marija.pricaj();

Josko.hodaj();

Znači, objekti u ActionScriptu imaju određene mogućnosti (sposobnosti), ali tek kada

im ih dodijelimo! Te mogućnosti koje dajemo objektima nazivamo METODE, a one se

pridjeljuju objektu tako da ime metode spojimo točkom s imenom instance objekta: date.getYear()

- objekt date kojem smo dali sposobnost da sazna tekuću godinu.

sound.setVolume()

- objekt sound koji sada ima sposobnost upravljati glasnoćom zvuka.

movieclip.stop()

- objekt movieclip koji smo dali sposobnost da zaustavi animaciju.

Ovdje primjećujemo da svaka metoda nakon svog imena ima i zagrade. Unutar tih

zagrada možemo odrediti pojedine parametre koji će dati preciznije upute objektu

kako nešto treba činiti, npr: Josko.trci(brzo);

Marija.pricaj(glasno);

Josko.hodaj(sporo);

U ActionScriptu bi to izgledalo ovako: objekt.metoda(parametar)

Ovaj objekt ima sposobnost upravljanja glasnoćom zvuka i namješta glasnoću na

100.

Sljedeća metoda objekta movieCIip koristi se i kao zasebna akcija: movieclip.goToAndPlay("Scena 2", 6);

Objekt movieCIip koji ima mogućnost skakanja na određeni kadar. Pobliže smo

označili i gdje. To je scena 2, kadar broj 6.

4.3.3. Svojstva (properties) objekta

Svaki objekt ima svoja svojstva, ali su nama najpotrebnija svojstva movieClip

objekta koja se nalaze popisana u ActionScript 2.0 Classes → Movie → Movie Clip

→ Properties unutar Actions panela. Ovdje opet povlačimo sličnost s objektima iz

realnog svijeta:

Josko, Marija i Marko imaju određenu visinu, težinu, boju kose. Josko._visina=180;

Marija._težina=65;

Marko.boja kose="crna"

Isto je tako s postojećim objektima u ActionScriptu:

MovieClip._height - visina MovieCIip simbola

MovieClip._x - pozicija MC simbola

MovieClip._rotation - rotacija MC simbola

Značajna je stvar da svojstvima možemo dodjeljivati određene vrijednosti:

MovieClip._height=200; - određujemo da je visina MC simbola 200 px

MovieClip._x=125; - određujemo poziciju MC simbola na sceni

MovieCIip.rotation=20; - određujemo rotaciju MC simbola u stupnjevima

Da rezimiramo:

U Flashu postoji mnogo klasa koji nam stoje na raspolaganju za manipulaciju. Svaki

od objekata (instanca klasa) ima određena svojstva (properties) i metode kojima

objektu dajemo određenu sposobnost. Klasa koja se najčešće koristi je MovieCIip i

dobro je zapamtiti njena svojstva i metode.

MovieClip (odnosno njegova instanca na sceni) postaje objekt u onom trenutku kad

instancu imenujemo u okviru Instance Name okvira Properties.

Slika 10. Popis svih propertiesa za MovieClip klasu

4.3.4. Ugrađeni objekti

Ako želimo koristiti neku klasu u ActionScriptu, ne možemo samo navesti njezino ime

(sound, date i slično) te joj pridjeljivati metode i svojstva već od svake klase

moramo načiniti njezinu instancu i imenovati je u Properties panelu. Tek tada tu klasu

možemo koristiti u obliku instance. Samo imenovanoj instanci možemo pridjeljivati

metode i svojstva. Ovdje možemo povući paralelu sa upotrebom biblioteke simbola.

Ukoliko neki simbol želimo koristiti na sceni, moramo iz biblioteke izvući njegovu

instancu na scenu i tek ga tada možemo koristiti. Mi u stvari ne koristimo sam simbol

već njegovu instancu (sliku, kopiju). Isto tako je i u ActionScriptu, ukoliko želimo

koristiti neku klasu, ne koristimo baš nju već moramo napraviti instancu te klase -

objekt.

U ActionScriptu postoji posebna funkcija kojom stvaramo instance nekog objekta. Ta

funkcija naziva se konstruktorska funkcija (constructor function) i bilježi se s new.

zvuk=new Sound();

boja=new Color();

Ovdje smo načinili jednu instancu (zvuk) klase Sound i jednu instancu (boja) klase

Color.

Primjer upotrebe ugrađenih objekata:

Želimo preko ActionScripta iz računala saznati i prikazati na sceni koja je tekuća

godina. ActionScript kôd unosimo na prvi ključni kadar kako bi se on izvršio odmah

na početku animacije. Pri radu sa datumima i vremenom koristimo skupinu podataka,

odnosno klasu koji se naziva Date i metodu te klase getFullYear() koja objektu

daje sposobnost dobivanja informacije o tekućoj godini. Već smo spomenuli da

ukoliko želimo koristiti neki klasu da moramo načiniti njegovu instancu. U ovom

primjeru instanca klase zvat će se vrijeme.

vrijeme=new Date();

Stvorili smo instancu klase po imenu vrijeme te joj sada možemo pridružiti metodu

koja će joj dati sposobnost da sazna tekuću godinu iz sistemskog sata. Ta metoda se

zove getFullYear();. Objekt će saznati tekuću godinu, međutim mora postojati

neko mjesto gdje će Flash pohraniti tu brojčanu vrijednost, a to je varijabla koju ćemo

nazvati godina. godina=vrijeme.getFullYear();

Brojčana vrijednost s tekućom godinom sada se nalazi u varijabli godina. Ukoliko

želimo prikazati tekuću godinu na sceni moramo na njoj načiniti jedno dinamičko

tekstualno polje jer upravo on ima sposobnost prikazati na sceni vrijednost neke

varijable ActionScripta. U Properties okviru kad je upaljen Text alat odabrati Dynamic

Text te pod Variable upisati ime varijable koja sadrži tekuću godinu, a to je godina.

5. Zaključak Ovo je bio samo mali dodir jednog, naizgled jednostavnog, programskog jezika. Kao i

kod drugih jezika važan je princip. Ako ste naučili programirati u jednog

programskom jeziku, lako je prebacivati se na druge. Samo je gramatika tog jezika

drugačija.

ActionScript je namijenjen da bi obogatio Flash i da bi uvelike povećao njegove

mogućnosti, ali i smanjili dimenzije kompajlirane .swf datoteke. Automatizacija brojnih

animacije, način rada, navigacija, sve je to upravljano upravo njime. Danas već

polako se putem ActionScripta rade brojne serverske i sigurnosne aplikacije.

Ukoliko se netko želi profesionalno baviti Flashom, poznavanje ActionScripta ne

smije izostati.

6. Literatura Internet http://en.wikipedia.org/wiki/Actionscript

http://www.actionscript.org/

http://www.actionscript.org/resources/categories/Tutorials/

http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/

http://actionscriptcheatsheet.com/blog/

Video Lynda.com - Macromedia Flash MX 2004 ActionScript 2