|
Animasyonu Duraklatmak
Normalde kesintisiz devam eden sannedeki bir
animasyonu istediğiniz karelerde istediğiniz süre kadar durmasını
ve süre sonunda tekrar kaldığı yerden devam etmesini istiyorsanız
bu ilginç getTimer fonksiyonunu kullanmalısınız.
Önce alttaki örneği izleyin. 80 karelik kesintisiz
bir animasyon 40 ve 60. karelerde 5 sn duraklatılmaktadır.
Animasyonun detaylarına geçelim:
1- Yeni bir sayfa açın ve sahnenin
en soluna bir daire çizin. Çift tıklayarak dairenin tamamını seçip
F8`e basın ve davranış olarak grafik seçeneğini işaretleyin. 80.kareye
bir keyframe ekleyin ve fare ile grafiği sahnenin en sağına taşıyın.
1.kareye sağ klik yapıp create motion tween komutunu verin. Kesintisiz
animasyonumuz hazır.
2- Üst kısma yeni bir katman
ekleyin. 40. kareyi seçin keyframe ekleyin ve sahneye burası 40.
karedir gibi birşeyler yazın. 60. kareye bir keyframe ekleyip
aynı işlemi uygulayın.
3- Tekrar 40 ve 60. kareleri
seçip şu kodu yazın:
durmazamani=getTimer();
Daha öncede anlatıldığı gibi bir flash filmi
başladığı an görülmez bir kronometre çalışır. getTimer komutu
ile animasyonun herhangibir karesinden başlama anından o ana kadar
geçen süre hesaplanır. Yukarıdaki komutla 40 ve 60. karede geçen
süreler durmazamani adlı değişkene atanır.
4- İnsert-->New Symbol komutunu
verin. Açılan panelden davranış olarak film klibini seçin. İşin
tüm püf noktası bu kliptedir. Bu klibe sadece animasyonu duraklatma
işlemini gerçekleştirecek scriptleri koyacağız. Yani boş bir klip
olacak.
Bu tür boş klibe yazılan scriptlerle animasyonu
idare etme örneklerine sıkça rastlayacaksınız. Mouse efektleri
genelde bu plan üzerinden çalışırlar.
5- Boş film klibini açıp 1.kareye
şu komutları yazın:
anadurmazamani = _level0.durmazamani;
ara = 5000;
_level0.stop();
if (getTimer() >= (ara + anadurmazamani)) {
_level0.play();
}
Bu komutları az sonra açıklayacağız. Şimdi klibin
2. karesine bir frame ekleyin. Bu çok önemli bir noktadır. Şayet
tek karede bırakırsanız komutlar bir kez okunacak ve _level0.stop
kısmında takılıp kalacaktır. 2. kare eklenmesi bir döngü sağlayacak
ve komut tekrarı oluşacaktır. Şimdi açıklamalar:
anadurmazamani = _level0.durmazamani; Burada
durmazamani değişkeninin aldığı değer anadurma zamani adlı başka
bir değişkene atanıyor. Şayet bu durma işlemi animasyon boyunca
1 kez yapılacak olsa idi bu eklentiye gerek kalmayacaktı. _Level0
sahnedeki animasyonu gösterir. Bu alana _root` da yazılabilirdi.
ara = 5000; Burada animasyonun duracağı süre
belirlenir. getTimer milisaniye cinsinden sonuç verdiğinden bu
değer 5 saniyeye eşit bir değerdir.
_level0.stop(); Değişkenler belirlendikten sonra
stop komutu ile animasyon durduruluyor.
if (getTimer() >= (ara + anadurmazamani))
{
_level0.play();
}
Şayet geçen zaman= 5sn + animasyonun durduğu
andaki saniye toplamına eşit olursa animasyonu başlat anlamında
kullanılmıştır.
anadurmazamani, flash oynatma kafası her 40 ve
60. kareleri geçtiğinde belirlenen durmazamani değişkeninin değerini
aldığından döngü devam ettikçe sorunsuz çalışacaktır. Başta da
dediğim gibi bu değişkeni kullanmayıp sadece durmazamani komutunu
kullansa idik animasyondaki duraklama sadece 1 kez gerçekleşecek
idi. Bunu denemek için aşağıdaki komutları kopyalayıp boş film
klibi 1.karesine yapıştırın.
_level0.stop();
ara = 5000;
if (getTimer() >= (ara + durmazamani)) {
_level0.play();
}
6- CTRL+Enter`a basıp filminizi test edin.
|