Opis
Ten tutorial krok po kroku rozwija poprzedni, wprowadzając obliczenia na zmiennych i sterowanie przepływem. Po wyświetleniu tekstu "Witaj świecie" w panelu Debug, nastąpi obliczenie wyniku y = x * x w panelu Debug, gdzie x ma wartości od 0 do 10.
Gdy wynik jest większy niż 50, nastąpi wyświetlenie w Debug dodatkowego komentarza "wow that is big" (jakie to wielkie).
Cel
Ten film przedstawia zdarzenie onFrame(), demonstruje użycie polecenia trace i Panel Debug i demonstruje użycie zmiennych, jak i kodu warunkowego if i while.
plik .swi
"kontrola_przepływu.swi"
1. |
Załaduj plik .swi "Witaj_Świecie_Hello_World.swi" (menu Plik | Przykłady | Tutoriale). Upewnij się, że przycisk 'Odtwórz' nie jest wciśnięty i zapisz plik jako "kontrola_przepływu.swi". |
2. |
Dodaj zarzenie onFrame do Scena_1. To zdarzenie wystąpi, gdy film osiągnie określoną klatkę. |

Jako, że klatka 1 jest bieżąco wybraną klatkę w Osi Czasu, zdarzenie onFrame będzie dodane do Klatki 1 Sceny_1. Po wstawieniu zdarzenia panel 'Skrypt' powinien wyglądać,jak niżej:
(Nota: subpanel asysta został wyłączony by polepszyć czytelność)

Nota:
· |
Oś czasu wskazuje, poprzez znacznik 's', że zdarzenie skryptu będzie miało miejsce w Klatce 1 Sceny 1. Gdy potrzebujesz, to zdarzenie onFrame może być przeniesione do innej klatki poprzez wprowadzenie jej numeru w nawiasach w zdarzeniu onFrame. Alternatywnie, możesz użyć lewego klawisza myszy i wybrać linię zawierającą kod onFrame(), włącz subpanel Asysta i wprowadź numer w pole Na Klatkę. Zdarzenie może być także przeniesione poprzez ciągnięcie znacznika 's' na Osi Czasu |
· |
Zdarzenie onSelfEvent (load) zostało dodane w poprzednim tutorialu (Witaj_Świecie albo Hello_World). |
2. |
Włącz subpanel Asysta i dodaj następujący kod do zdarzenia onFrame (1). Nota: ten skrypt może być także wprowadzony bezpośrednio w edytorze skryptu. Polecenie Menu użyte do dodania skryptu są pokazane w kolumnie Komentarze |
Kod |
Komentarze. |
x = 0; |
Dodajesz używając Dodaj Skrypt | Deklaracje | name = expr - przypisanie;
Wpisz "x" w pole Nazwa (to pole określa nazwę zmiennej). Następnie dodaj wartość zmiennej "0" (zero - bez cudzysłowów) w pole Wyrażenie, poniżej pola Operator. W tym przypadku opcja Cel: może zostać puste - opcja Cel jest używana by określić nazwę obiektu, która zawiera daną zmienną lub właściwość. Pozostawienie tego pola pustego skutkuje tym samym, co wprowadzenie słowa this |
y = 0; |
Dodajesz używając Dodaj Skrypt | Deklaracje | name = expr - przypisanie;
Innym sposobem, by wprowadzić ten kod, jest skopiowanie i wklejenie kodu x=0, następnie zmiana x na y, tzn. y = 0; |
while (x <= 10) { |
Dodajesz używając Dodaj skrypt | Pętle | while (...) {
Wpisz x <= 10 w pole while (dopóki) subpanelu asysty |
y = x * x; |
Dodajesz używając Dodaj Skrypt | Deklaracje | name = expr; lub kopiujesz i modyfikujesz poprzedni kod |
trace("y = " add y add " x = " add x); |
Dodajesz używając Dodaj Skrypt | Debugowanie - śledzenie wykonania kodu | trace(...)
Nota: Polecenie add jest używane by połączyć wiele tekstów |
if (y > 50) { |
Dodajesz używając Dodaj Skrypt | Warunki | if (...) { |
trace("wow that is big (jest za duży)"); |
Dodajesz używając Dodaj Skrypt | Debugowanie - śledzenie wykonania kodu | trace(...)
To polecenie jest wykonywane tylko wtedy, gdy wartość y jest większa od 50 |
} |
Wpisane jako część instrukcji if . Pokazuje koniec kodu if (jeśli) |
x = x + 1; |
Klknij na zamykający nawias klamrowy instrukcji IF, dodaj następujący skrypt, korzystając z Dodaj Skrypt | Deklaracje | name = expr;
Gdy ten kod nie będzie dodany, x nie będzie nigdy zwiększone i pętla będzie trwała w nieskończoność.
Nota: kody x++ lub x += 1 też mogą być użyte |
} |
Wpisany,jako część instrukcji pętli while (dopóki). Pokazuje koniec pętli while |
Po wprowadzeniu powyższego skryptu, twój panel 'Skrypt' powinien wyglądać:

3. |
By wytestować swój skrypt, wybierz panel Debug i wciśnij przycisk 'Odtwarzaj' by uruchomić twój film. Panel 'Debug' powinien pokazywać, co następuje: |

Analiza
Po wciśnięciu przycisku 'Odtwarzaj', film jest ładowany. Skutkuje to wystąpieniem zdarzenia onSelfEvent (load) i wykonaniem skryptu w funkcji obsługującej to zdarzenie.
Kod trace zawierający tekst "Hello World" jest wykonywany, powodując, że tekst jest wyświetlany w panelu Debug Panel.
Gdy film będzie załadowany, nastąpuje start odtwarzania. Na klatce 1 Scena_1 zachodzi zdarzenie onFrame(1) i skrypt w funkcji funkcji obsługi zdarzeń jest wykonywany:
x = 0;
y = 0;
while (x <= 10) {
y = x * x;
trace("y = " add y add " x = " add x);
if (y > 50) {
trace("wow that is big");
}
x = x + 1;
}
x i y są Zmiennymi. Wszystkie zmienne powinny mieć nadaną wartość przed ich użyciem. Z tego powodu, kod x=0 powinien być wstawiony przed kodem x = x + 1, zapewniając, że x ma już wartość. Jako, że wartośc y jest nadawana w skrypcie, kod y=0 nie jest wymagany, ale zawsze stanowi dobrą praktykę by inicjalizować zmienne.
Pętla while będzie przebiegać po jej instrukcjach, aż x osiągnie 10. Ostnią linią kodu pętli while jest x = x + 1, zwiększająca x o 1, pętla będzie wykonywana dla wartości x = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 i zakończy gdy x = 11.
Kod śledzenia trace("y = " add y add " x = " add x); jest użyty do wyświetlenia wartości y i x. Operator add jest użyty by połączyć wiele tekstów w jeden łańcuch tekstowy. Nota: zmienne x i y są konwertowane do łańcuchów tekstowych, by je wyświetlić w panelu Debug.
Przy każdym przebiegu while, wartości y jest porównywana z 50 z pomocą kodu: if (y > 50) . Gdy zmienna y jest większa niż 50, to kod, za instrukcją if - w jej nawisach klamrowych, jest uruchamiany, trace("wow that is big");. To sprawia, że tekst "wow that is big" jest wyświetlany za każdym razem, gdy y jest większe niż 50.