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

Podstawy języka skryptowego - Lekcja 14. Zdarzenia zachodzące dla klatek

roland - Sro 24 Sie, 2005 12:51
Temat postu: Lekcja 14. Zdarzenia zachodzące dla klatek
Zwróć uwagę na istnienie tak jakby dwóch rodzajów zdarzeń. Jedne z nich zachodzą dla animacji (z tych zdarzeń poznaliśmy jedynie onLoad ()), a drugie dla konkretnego obiektu (na przykład on (press)). Chcąc stworzyć skrypt uruchamiany przy starcie animacji, musisz zaznaczyć w oknie Outline odpowiednią scenę (na przykład Scene_1) i wtedy wprowadzić odpowiedni skrypt. W drugim przypadku musisz na karcie Outline wskazać nazwę konkretnego obiektu i dla niego wprowadzić skrypt, który ma się wykonać gdy zaistnieje określone zdarzenie.
Jeżeli jednak dokładniej przyjrzymy się zdarzeniu onLoad (), to zauważymy, że można także wskazać wybrany obiekt i dla niego opisać to zdarzenie. Zajdzie ono wtedy, gdy zostanie otwarty dany obiekt. Najczęściej otwarcie danego obiektu zajdzie zaraz po uruchomieniu animacji. Mając więc dwa zdarzenia onLoad (), jedno dla animacji, a drugie dla obiektu, to zaraz po zakończeniu obsługi pierwszego z nich, zostanie wykonane to, które zostało przypisane obiektowi.
Wątpliwości pojawią się w momencie, gdy przypiszemy kilka zdarzeń onLoad (), dla kilku różnych obiektów. Wtedy po wykonaniu tego zdarzenia dla animacji, zostaną wykonane po kolei zdarzenia dla poszczególnych obiektów, w odwrotnej kolejności, w stosunku do tej jaka widnieje w oknie Outline.
W praktyce jednak stosowanie tak wielu zdarzeń onLoad () nie ma sensu, gdyż lepiej wprowadzić tylko jedno, dla animacji. Może zaistnieć jednak sytuacja, gdy zdarzenie onLoad () nie wykona się na samym początku. Będziemy wtedy najprawdopodobniej mieli do czynienia z duszkami, ale chwilowo się nimi nie zajmujemy.

Wróćmy jednak do tematu aktualnej lekcji. Istnieje jeszcze jedno zdarzenie, które możemy przypisać do animacji, jest nim onFrame(). Zachodzi ono w momencie, gdy animacja przejdzie do danej klatki, dla której to zdarzenie zostało opisane. Aby je wprowadzić, możesz postąpić na dwa sposoby:
    • wskazać na linii czasu w wierszu Scene_1 wybraną klatkę, a następnie wybrać je z Add Script > Events > Frame > onFrame(),
    • lub też wpisać ręcznie, ale jedynie dla trybu Expert. W tym jednak przypadku, będziesz musiał samodzielnie wpisać numer klatki, której przypiszesz dany skrypt.

Załóżmy, że mamy obiekt o nazwie Prostokat. Wtedy wprowadzając dla Scene_1 następujący skrypt:
Kod:
onFrame (20) {
    Prostokat._rotation=90;
}
onFrame (40) {
    Prostokat._yscale=50;
}
onFrame (60) {
    Prostokat._rotation=0;
}

spowodujemy, że gdy animacja dojdzie do klatki 20, nasz obiekt obróci się o 90 stopni, następnie w klatce 40, zmniejszy są szerokość o połowę, i ponownie w klatce 60, kąt obrotu zostanie ustawiony na 0 stopni.


Powered by phpBB modified by Przemo © 2003 phpBB Group