SWiSH Forum
Forum użytkowników programów SWiSH

Podstawy języka skryptowego - Lekcja 26. Definicja własnej funkcji

roland - Wto 23 Maj, 2006 12:14
Temat postu: Lekcja 26. Definicja własnej funkcji
Jeżeli w skrypcie często używasz niemal identycznych ciągów instrukcji, to może istnieje możliwość uproszczenia zapisu przy pomocy definiowanych funkcji.
Zapewne znasz już kilka zdefiniowanych w programie funkcji, takich jak, np. Math.randomInt() czy Number(). Dlaczego więc nie zdefiniować własnych, które będzie można wywołać w tak samo prosty sposób.
Aby móc korzystać z własnych funcji, muszą być spełnione dwa warunki. Po pierwsze funkcja musi zostać zdefiniowana, a po drugi musi zostać w skrypcie wywołana.
Składnia definicji funkcji jest następująca:
function nazwa ([argument1] [,argument2]) {
instrukcja;
}

Gdzie:
    • nazwa – jest nazwą definiowanej funkcji,
    • argument1, argument2 – są argumentami przekazywanymi do funkcji, na których będą wykonywane działania. Jednak nie są one obowiązkowe. Czyli można zdefiniować funkcję bez argumentów,
    • instrukcja – instrukcja lub instrukcje do wykonania przez funkcję.
Przykład definicji funkcji:
Kod:
function ZlaWartosc() {
     trace("Wprowadzono złą wartość")
}

Jeżeli masz w animacji wiele pól, do których użytkownik może wprowadzać własne dane, to gdy wpisz wartość niepoprawną, możesz teraz wywołać funkcję ZlaWartosc(), która spowoduje wyświetlenie odpowiedniego komunikatu w oknie Debug.

Spróbujemy teraz utworzyć prosty skrypt, zarówno z definicją funkcji, jak i jej wywołaniem:
Kod:
onLoad () {
    x = 4;
    Pierwiastek(x);
}
function Pierwiastek(a) {
    if (a>0) {
        trace(Math.SQRT(a));
    } else {
        trace("BŁĄD");
    }
}

Wiersz Pierwiastek(x) powoduje wywołanie funkcji o nazwie Pierwiastek i przekazanie do niej wartości, poprzez zmienną x. Wartość ta w funkcji Pierwiastek() zostanie podstawiona pod zmienną a. Jeżeli wartość przekazanej wartości będzie dodatnia, to funkcja wyświetli w oknie Debug wartość obliczonego pierwiastka, w przeciwnym razie, wyświetli tekst „BŁĄD”.

Funkcja może także zwracać obliczoną wartość. W tym celu muszą zostać wprowadzone dwie zmiany. Po pierwsze funkcja musi zostać podstawiona pod zmienną (lub użyta w innej instrukcji), a po drugie w funkcji należy użyć polecenia return:
Kod:
onLoad () {
    wynik = 0;
    minimum = 1;
    maksimum = 6;
    wynik=Kostka(minimum,maksimum);
    trace(wynik);
}
function Kostka(x1,x2) {
    return Int(Math.randomRange(x1,x2+1));
}

Powyższy przykład umożliwia symulowanie rzutu kostką o dowolnej liczbie ścianek (określonych jako zmienne o nazwach minimum oraz maksimum). Funkcja obliczy losową wartość z podanego przedziału i zwróci wynik, przypisując go zmiennej wynik.

rafciodz - Sro 23 Sty, 2008 21:37
Temat postu: funkcje wbudowane swish'a
Witam, czytam sobie powolutku kurs, przymierzam się do kupienia programu. Na razie bawię się na wersji 15 dniowej.
Mam kilka pytań:
1. Czy mógłby Pan opisać funkcje wbudowane w swish'ie?
2. Na forum jest sporo o odczytywaniu plików itd, może przydałaby się lekcja na ten temat?
3. Skoro istnieje możliwość ( w swish'ie ) odczytania pliku, czy rzeczywiście nie ma możliwości poprzez podobną funkcję wykonania zapisu ( w helpie programu - jest load and write ) ale opisane jest load, może jest taka funkcja?
4. Pytanie troszkę z innej beczki, ile stanowisk obsługuje jeden zakupiony program ( gdzieś na stronie sprzedawcy wyczytałem że do 4 )??
5. Czy istnieje pomoc on line dla programu w razie problemów z instalacją itd?
6. Wracając do lekcji przydałyby się dokładne lekcje współpracy programu z bazami danych - mysql np. Czy da się to w miarę czasu zrobić??
Pozdrawiam.


Powered by phpBB modified by Przemo © 2003 phpBB Group