[ Pobierz całość w formacie PDF ]

programów. W naszym następnym ćwiczeniu wykorzystamy funkcje w nieco inny niż dotąd
sposób, dodając możliwość wyświetlania tekstowego opisu odbieranego właśnie programu.
Zmienne lokalne oraz funkcje,
które zwracają określoną wartość
Do zmiennych, które tworzyliśmy i wykorzystywaliśmy do tej pory, można było odwołać się
w dowolnym momencie, z poziomu dowolnego skryptu umieszczonego w filmie Flasha. Jednak
istnieją również zmienne lokalne, które tworzone są i wykorzystywane jedynie w obrębie definicji
LEKCJA 2. 65
Funkcje
określonej funkcji. Innymi słowy, zmienna lokalna tworzona jest wewnątrz definicji funkcji i wy-
korzystywana przez tę właśnie funkcję po jej wywołaniu, a następnie po zakończeniu działania au-
tomatycznie usuwana. Zmienne lokalne istnieją jedynie w obrębie funkcji, w której zostały zade-
klarowane.
Choć stosowanie zmiennych lokalnych podczas programowania w języku ActionScript nie jest ab-
solutnie konieczne, posługiwanie się nimi stanowi dobry programistyczny zwyczaj. Aplikacje wy-
magające wielu skomplikowanych obliczeń wykorzystują mnóstwo zmiennych, które mogą spowol-
nić jej działanie z upływem czasu. Wykorzystując zmienne lokalne, minimalizujesz wykorzystanie
dostępnej pamięci i zapobiegasz występowaniu konfliktów nazw, mogących pojawić się w dużych
projektach podczas spontanicznego tworzenia nowych zmiennych i nadawania im nazw, które by-
ły już wcześniej wykorzystane. Zmienne lokalne zadeklarowane w jednej funkcji mogą mieć iden-
tyczne nazwy jak zmienne istniejące w innej  nawet jeśli definicje obu funkcji znajdują się na tej
samej listwie czasowej. Jest to możliwe, ponieważ Flash rozpatruje daną zmienną lokalną jedynie
w obszarze funkcji, w którym została zadeklarowana.
Jest tylko jedna metoda ręcznego tworzenia zmiennych lokalnych; konstrukcji tej używałeś dotąd
z powodzeniem przy tworzeniu zwykłych zmiennych:
var myName:String = "Jobe";
Zmienna ta staje się lokalna po prostu przez umieszczenie jej deklaracji wewnątrz definicji funkcji
i zastosowanie konstrukcji ze słowem kluczowym var.
Posłużmy się pewnym przykładem, aby lepiej wyjaśnić ideę deklarowania funkcji lokalnych. W na-
szym poprzednim ćwiczeniu zadeklarowaliśmy (utworzyliśmy) zmienną o nazwie currentChannel
i umieściliśmy ją w pierwszej klatce głównej listwy czasowej. Do jej utworzenia posłużyła następu-
jąca konstrukcja:
var currentChannel:Number;
Ponieważ podana tutaj linia skryptu zawierająca deklarację zmiennej znajdowała się w 1. klatce
głównej listwy czasowej, nie zaś wewnątrz definicji funkcji, zmienna ta stanie się dostępna na głów-
nej listwie czasowej. Jeżeli umieścilibyśmy identyczną deklarację wewnątrz definicji jakiejś funkcji,
zmienna currentChannel byłaby traktowana jako lokalna (przynależna jedynie do tej funkcji): ist-
niałaby wyłącznie po wywołaniu tej funkcji i usuwana po zakończeniu jej działania. Spróbuj po-
traktować zmienne lokalne jako tymczasowe wartości przeznaczone do wykorzystania jedynie
w obrębie wybranej funkcji.
Jeżeli chciałbyś wewnątrz funkcji zadeklarować zmienną, która będzie dostępna z zewnątrz, pomiń
w deklaracji słowo kluczowe var i skorzystaj z następującej konstrukcji:
name = "Jobe";
Zmienne ogólnodostępne najlepiej deklarować poza obrębem funkcji. Deklaracja taka jest trakto-
wana jako poprawna, ponieważ ułatwia zgrupowanie wszystkich tego typu zmiennych w jednym
miejscu. Porządek i przejrzystość programowania staje się bardzo istotna szczególnie wówczas, gdy
chciałbyś powrócić do swojego projektu po kilku miesiącach lub przekazać go innemu programiście.
66 MACROMEDIA FLASH 8 ACTIONSCRIPT
Oficjalny podręcznik
W jednej linii kodu umieszczonej wewnątrz funkcji możesz zadeklarować wiele zmiennych lokalnych:
var firstName:String = "Jobe", lastName:String = "Makar", email:String =
"jobe@electrotank.com";
Zwracanie wartości przez funkcję
Funkcje niekoniecznie muszą służyć wyłącznie jako zestaw poleceń przeznaczonych do wykona-
nia; możesz również wykorzystać je w charakterze miniprogramów działających w obrębie projek-
tu, przetwarzających wysyłane im informacje i zwracających określony rezultat. Przyjrzyjmy się na-
stępującej definicji funkcji:
function buyCD(availableFunds:Number, currentDay:String):Boolean {
var myVariable:Boolean;
if(currentDay != "Sunday" && availableFunds >= 20) {
myVariable = true;
} else {
myVariable = false;
}
return myVariable;
}
Podczas wywołania funkcji wysyłane są do niej dwa parametry  availableFunds oraz current-
Day. Funkcja przetwarza wartości tych parametrów za pomocą wyrażenia warunkowego if/else. [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wyciskamy.pev.pl