19. Jedan profesionalno izradjen skript fajl.

Ako ste nakon prethodnog casa dali malo masti na volju i izradili nekoliko slicnih primera skripti koje su na vase zadovoljstvo citale informacije koje ste zeleli, spremni ste da se upoznate sa primerom jednog pravog, profesionalno izradjenog seta skripti. To su skripte namenjene radu "Sound Recorder-a".
Pokrenimo ovaj program preko start menija:
Start menu/Programs/Accessories/Entertainment/Sound Recorder.

Prozor ovog programa je zaista jednostavan i sadrzaj mu je slican sledecem:

Sound - Sound Recorder
File Edit Effects Help
Position: Length:
0.00 sec. 0.00 sec.
graphic 797  graphic 958  graphic 412  graphic 789  graphic 548 

Tu su naslovna linija, linija sa menijima, prikaz pozicije i duzine zvucnog fajla izrazene u sekundama, i konacno deo sa osnovnim graficki prikazanim kontrolama za rad sa programom.
Napomena: Brojevi grafika koje je Jaws dodelio kontrolama, mogu se razlikovati na razlicitim racunarima pa verovatno kod vas nece biti isti kao u navedenom primeru ali to nema uticaja na dalji tok ovog izlaganja.
Ako upotrebimo taster "Tab", videcemo da se fokus naizmenicno prebacuje izmedju jednog horizontalnog klizaca za poziciju u zvucnom fajlu i jednog ili vise brojem numerisanih grafickih znakova. Upotreba ovog jednostavnog programa bi bila vrlo nezgodna i neprakticna bez skripti koje su za njega napisane i koje cemo sada pogledati.
Dok se nalazite na otvorenom Sound Recorder-u, pritisnite "insert+0" da otvorite Script Manager sa ucitanim skript fajlom za Sound Recorder.

Na samom pocetku fajla, nalaze se nekoliko uobicajenih redova upisanih kao komentar iza znaka tackazarez. To su najcesce par napomena o nameni samog fajla i njegovim autorima.

Ispod komentara se nalaze cetiri reda za "include", (uvrscavanje), potrebnih fajlova sa globalnim promenljivama i konstantama, kao i porukama koje se upotrebljavaju u ovom fajlu. To su:

include "hjconst.jsh"
include "SndRec32.jsh"
include "SndRec32.jsm"
include "common.jsm"

Imena fajlova se pisu u navodnicima i to sa obavezno upisanim nastavkom za tip fajla.
Fajlovi sa nastavkom "jsh" su "JAWS Script Header", i sluze za deklarisanje globalnih promenljivih i definisanje konstanti.
Fajlovi sa nastavkom "jsm", su "JAWS Script Message", i sluze za definisanje poruka koje se izgovaraju u skriptama.

Odmah ispod, nalaze se deklaracije za tri globalne promenljive:

globals
	int SoundRecFirst,
	int nSuppressEcho,
	int LimitSpeech

I konacno, na dalje sve do kraja skript fajla, nalaze se skripte i funkcije. Kada se nalazimo na nekom skript fajlu, za pomeranje sa skripte na skriptu unapred koristimo "F2", a za pomeranje unazad, "shift+F2". Ako zelimo da pogledamo listu svih skripti i funkcija koje se nalaze u skript fajlu, i dodjemo direktno na neku od njih, koristicemo "control+l". Sound Recorder.jss skript fajl sadrzi sledece skripte i funkcije:

AddToString
AutoFinishEvent
AutoStartEvent
ClickFastForward
ClickPlay
ClickRewind
ClickStop
HotKeyHelp
LimitSpeech
PressButton
ScreenSensitiveHelp
ScriptFileName
SelectAButton
StartRecord

Ove skripte i funkcije pocecemo detaljno  da objasnjavamo na sledecem casu, a sada cemo pogledati one "include" fajlove sa pocetka, kako bismo znali gde da nadjemo definiciju neke konstante ili poruke.
Otvorimo prvo komandom "Open Shared File...", iz "File" menija, fajl "hjconst.jsh". Nezaboravite da u odgovarajucem komboboksu promenite tip fajla na "jsh". Videcete da je ovo zaista veliki spisak definicija za konstante. Ovo su konstante koje se koriste u gotovo svim skript fajlovima pa se "include" naredba sa ovim fajlom moze naci u  pocetku gotovo svakog skript fajla. Ovaj fajl ne treba modifikovati jer nam stoji uvek na raspolaganju dodavanje sopstvenih konstanti u novom fajlu koji sami kreiramo. O nacinu definisanja konstanti smo vec ranije govorili, pa mozemo samo malo pogledati ovaj fajl i uociti da se konstante cesto javljaju u grupama sa istim prefiksom vezanim za njihovu namenu. 
Mozemo zatvoriti ovaj fajl, a otvoriti "SndRec32.jsh". Vidimo da je ovaj fajl dosta manji u odnosu na prethodni. Medjutim, par desetina konstanti koje su ovde definisane su vazne za skript fajl koji posmatramo i upotrebljene su sirom tog fajla. Srescemo se sa njima kada budemo objasnjavali skripte koje se pozivaju na njih.
Pogledajmo i fajlove sa porukama. Prvo "Common.jsm". Slicno "HJConst.jsh" fajlu, i upotreba ovog fajla je siroko rasprostranjena. U njegovom prvom delu se nalaze poruke definisane na klasican nacin kao konstante, a u drugom delu se nalazi oblast sa definisanim porukama izmedju posebnih simbola za pocetak i kraj poruke.
I konacno, pogledajmo i "SndRec32.jsm". Videcemo par poruka definisanih kao konstante i niz poruka koje su navedene iza reci "messages".
Dakle, slicno reci "Const", koju koristimo da navodimo listu konstanti, rec 
Messages
navodimo da otpocnemo definicije poruka. Pojedinacnu poruku definisemo tako sto u jednom redu pisemo znak "et", (@), u sledecem tekst poruke, i u narednom poruku zavrsavamo dvostrukim znakom "et".

Videli smo sta je sve uvrsteno u nas skript fajl, a na sledecim casovima cemo pogledati kako sve to radi. Upoznacemose sa jos dosta novih funkcija, i bice nam lakse da protumacimo slicne postojece skript fajlove, a vremenom cemo moci i sami da ih pisemo u skladu sa formatom i konvencijama koje vaze za pisanje profesionalnih skript fajlova.
 "Lekcija 20."

 "Skok na sadrzaj "