21 Detaljnije tumacenje skripti i funkcija  upotrebljenih u skript fajlu Sound Recorder.jss. (nastavak 1.)

Sada posto smo se blize upoznali sa ulogom funkcija i skripti koje su upotrebljene u Sound Recorder.jss fajlu, pogledacemo njihov programski tekst i pokusati da ga u nekoliko narednih casova detaljnije protumacimo.

Funkcija AutoStartEvent izgleda ovako: 

Function AutoStartEvent() 
let nSuppressEcho = 1
if (SoundRecFirst == 0) then
	let SoundRecFirst = 1
	SayFormattedMessage (OT_APP_START, msg12_L) ; "To select a button from the list, press"
	SayFormattedMessage(OT_APP_START, GetScriptKeyName ("SelectAButton"))
	SayFormattedMessage (OT_APP_START, msg11_L) ; "if you are using a software synthesizer, try toggling the LimitSpeech option with"
	SayFormattedMessage (OT_APP_START,GetScriptKeyName ("LimitSpeech"))
endif
EndFunction 

U redu:
let nSuppressEcho = 1
postavlja se vrednost celobrojne globalne promenljive na 1. U funkciji "AutoFinishEvent" se ova vrednost postavlja na 0.
Na dalje imamo jos nekoliko redova smestenih u "if ... Then ... EndIf" programskoj strukturi.
if (SoundRecFirst == 0) then
	let SoundRecFirst = 1
	SayFormattedMessage (OT_APP_START, msg12_L) ; "To select a button from the list, press"
	SayFormattedMessage(OT_APP_START, GetScriptKeyName ("SelectAButton"))
	SayFormattedMessage (OT_APP_START, msg11_L) ; "if you are using a software synthesizer, try toggling the LimitSpeech option with"
	SayFormattedMessage (OT_APP_START,GetScriptKeyName ("LimitSpeech"))
endif

Ovi redovi su zaduzeni za izgovor poruka koje cujemo pri prvom ulasku u Sound Recorder. Posto se funkcija AutoStartEvent izvrsava ne samo kada prvi put otvorimo program, vec i svaki put kada se na njega vratimo sa nekog drugog programa, ove poruke bi se svaki put suvisno ponavljale. Da bi se ovo izbeglo, deklarisana je globalna promenljiva "SoundRecFirst". Posto ova promenljiva pri prvom aktiviranju funkcije "AutoStartEvent" ima vrednost 0 to cemo proveriti programskim redom:
if (SoundRecFirst == 0) then
i posto je pri prvom izvrsenju funkcije uslov ispunjen, preci ce se na izvrsenje sledecih redova:
	let SoundRecFirst = 1
	SayFormattedMessage (OT_APP_START, msg12_L) ; "To select a button from the list, press"
	SayFormattedMessage(OT_APP_START, GetScriptKeyName ("SelectAButton"))
	SayFormattedMessage (OT_APP_START, msg11_L) ; "if you are using a software synthesizer, try toggling the LimitSpeech option with"
	SayFormattedMessage (OT_APP_START,GetScriptKeyName ("LimitSpeech"))

Prvi od tih redova:
	let SoundRecFirst = 1
postavlja vrednost posmatrane globalne promenljive na 1 sto ce u sledecem pozivu funkcije AutoStartEvent spreciti da ovi redovi sa porukama budu ponovo izvrseni, jer uslov za to nece biti ispunjen. Ovaj postupak je veoma cesto koriscen u Jaws skriptama kada je neki deo koda potrebno izvrsiti samo jedanput, a svaki sledeci put ga preskociti.
I konacno da objasnimo funkciju "SayFormattedMessage ".

Kategorija u FSDN-U:
34. Strings, (stringovi). 46 stavki. 
SayFormattedMessage

Function: SayFormattedMessage

Description (opis)

Ova funkcija zahteva kratku i dugu poruku, i izvrsava odgovarajucu od njih u skladu sa datim tipom izlaza, (output type). Prosledjene poruke mogu imati formatirane stringove kao na primer %KeyFor() koji ce biti formatirani ovom funkcijom. Ako se koristi OT_USER_BUFFER izlazni mod za stavljanje teksta u korisnicki bafer, (virtualni preglednik), ne ukljucujte kratku poruku jer ce biti ignorisana. Od Jaws-a 5 i dalje, ne preporucuje se upotreba ove funkcije za izgovor tipa i statusa kontrola. Umesto toga treba koristiti funkcije IndicateControlType i IndicateControlState. Tip su informacije kao "edit" ili "button" a status informacije kao "checked" ili "not checked".

Returns (povratna vrednost)

Type: Void (nema povratnu vrednost)

Parameters (parametri)

Param 1: (prvi parametar)

Type: Int (tip celobrojna vrednost)
Description: (opis)
Konstanta koja predstavlja zeljeni tip izlaza, (output type), za dati set poruka. Lista raspolozivih konstanti se moze naci u fajlu hjconst.jsh.
Include: Required (uvrstiti se mora)

Param 2: (drugi parametar)

Type: String (string vrednost)
Description: (opis)
String u obliku teksta u navodnicima, konstanta u obliku poruke, ili promenljiva koja sadrzi odgovarajucu dugu poruku. Ukoliko vam je potrebna samo jedna poruka, upisite je ovde i izostavite treci parametar. 
Include: Required (uvrstiti se mora)

Param 3: (treci parametar)

Type: String (string vrednost)
Description: (opis) 
String u obliku teksta u navodnicima, konstanta u obliku poruke, ili promenljiva koja sadrzi odgovarajucu kratku poruku. Ukoliko vam je potrebno da ova poruka ne izgovara nista koristite konstantu msgSilent na mestu treceg parametra. Ako koristite izlazni mod OT_USER_BUFFER, nemojte uopste upisivati treci parametar.

Include: Optional (uvrstiti se moze ali nije obavezno)

Version (verzije)

This function is available in the following releases: (ova funkcija je dostupna u sledecim izdanjima)
List of 2 items
• PAC Mate 1.10 and later
• JAWS 4.51 and later
list end

Funkcija SayFormattedMessage za koju smo upravo pogledali dokumentaciju u FSDN-u, upotrebljena je u funkciji AutoStartEvent cetiri puta i to svaki put bez treceg parametra koji je kako smo videli opcionalan. Takodje je svaki put na mestu prvog parametra koriscena konstanta OT_APP_START.
Kao drugi i jedini parametar koji predstavlja poruku korisceni su:

prva poruka
msg12_L
sto je konstanta u obliku poruke cija definicija u fajlu SndRec32.jsm izgleda ovako:

@msg12_L
To select a button from the list, press
@@

i daje korisniku pocetni deo poruke sa znacenjem:
"Da odaberete dugme sa liste pritisnite"

druga poruka
GetScriptKeyName ("SelectAButton")

sto je funkcija koja za povratnu vrednost ima string koji sadrzi ime tastera koji je dodeljen skripti cije je ime u zagradama uvrsteno kao parametar. Posto je skripti "SelectAButton", dodeljena precica "insert + F8" ili "JawsKey + F8", to ce kada se ova poruka nastavi na prethodnu dati sledeci rezultat:
To select a button from the list, press JawsKey+F8
ili drugim recima
Da odaberete dugme sa liste pritisnite insert plus funkcijski taster F8.

Na slican nacin:
treca poruka
msg11_L

If you are using a software synthesizer, try toggling the LimitSpeech option with
sa znacenjem
"Ako koristite softverski sintetizator, pokusajte da naizmenicno ukljucujete ogranicenje  govora pomocu " 
i cetvrta poruka
GetScriptKeyName ("LimitSpeech")
koja predstavlja stringovnu povratnu vrednost funkcije "Control+L" sto je tastaturna precica dodeljena skripti "LimitSpeech".

Ove dve poruke zajedno daju rezultat:
If you are using a software synthesizer, try toggling the LimitSpeech option with control+L
sa znacenjem
"Ako koristite softverski sintetizator, pokusajte da naizmenicno ukljucujete ogranicenje govora pomocu control plus L".

Na sledecim casovima cemo nastaviti sa tumacenjem skripti i funkcija iz ovog skript fajla. Pokusajte i sami prethodno da uz pomoc Jaws-ovog helpa osetljivog na tekst na ekranu, (shift+F1), saznate vise o funkcijama koje su upotrebljene. Pokusajte da ih pronadjete i u FSDN dokumentaciji. Ako vam se ucini da neku od svojih ideja mozete realizovati uz pomoc novostecenih saznanja i zakljucaka, odmah to isprobajte u praksi. Ne opterecujte se time sto cete stvari uciti napamet. Pokusajte da ih razumete i zapamtite gde ih mozete pronaci kada vam zatrebaju.
 "Lekcija 22."

 "Skok na sadrzaj "