Değişken Örnekleri-6


While, Do While ve For döngü deyimleriyle belli bir koşulun doğru olduğu sürece tekrar eden aksiyonlar oluşturabilirsiniz.

Döngü deyimleri uygulandığında görüntü donar ve hiçbir fare ve klavye olayı algılanamaz. Bu nedenle bir film klibi üzerinde döngü deyimleri yerine İf deyimi ile enterFrame fare olayını birarada kullanmak çok daha uygun olacaktır.

While için:

1- Yeni bir film klibi oluşturalım. Biz basit bir shape tween içeren bir film klibi yaptık. Sahneye yerleştirip adlandıralım. (bar)

2- Bir buton oluşturup sahneye yerleştirelim.

3- Butonu seçelim ve on(release) olayına i=0; komutunu ekleyelim.

4- Statements-->Conditions/Loops-->While komutunu verelim. Condition alanına i <361 yazalım. Değişkenimizi sıfırdan başlattığımız için döngü 361 olana kadar devam edecektir. 360 derece dönüş planlanmaktadır

5- Şimdi koşulumuz doğru olduğu sürece tekrarlamasını istediğimiz işlemi ekleyelim. isim="bar"+i; komutunu verelim. Çoğaltılan klip adlarında kullanacağımız bu değişkenden bir önceki örnekte de bahsedilmişti.duplicateMovieClip komutunu ekleyelim.. Target alanına klibimizin mutlak yolunu girelim.(_root.bar) NewName alanına isim, depth alanına i yazalım

Bu komutlarla değişkenimizin sayısı arttıkça kopya filmlerimiz sayı 361 olana kadar artacaktır.

6- Şimdi klip kopyalarının saydamlığını ve rotasyonunu değiştireceğiz. setProperty komutunu verelim. Property alanına _rotation yazalım. Target alanına _root[isim] , value alanına i yazalım.

Tekrar setPropery komutunu girelim. Property için _alpha`yı seçelim. Target alanına _root[isim] yazalım. Value alanına (i/360)*100 ekleyelim. Bu komutla kopya klipleri giderek artan bir değerde şeffaflaşacak ve sonunda %100 şeffaflık değerine ulaşacaktır.

7- Şimdi i değerinin artışını hazırlayalım. i + = 30 yazalım.(veya i=i+30) Bu komutla döngü her çalıştığında i değişkeni 30 ar 30 ar artacak ve 361 veya üstü değere ulaşınca artık koşul yanlış kabul edilip döngü kesilecektir.Tüm döngü deyimleri kapa parantez işaretinden önce yazılmalıdır. Yoksa animasyon hata verir. Döngü deyiminden çıkmak için kapa parantez işaretini seçelim ve bar._visible =0 yazalım. Artık o kopyaya ait görüntü kaybolacaktır. Komutların görüntüsü şöyle olur:

on (release) {
i = 0;
while (i<361) {
isim="bar"+i;
duplicateMovieClip(_root.bar,isim , i);
setProperty(_root[isim], _rotation, i);
setProperty(_root[isim], _alpha, (i/360)*50);
i += 30;
}
bar._visible = 0;
}

Filmi test edebiliriz. Şimdi aynı işlemleri Do While ve For için yazalım. Butona ait komutların hepsini silin alttaki komutları kopyalayıp yapıştırın.Animasyon aynı şekilde çalışacaktır.

Do While için:

on (release) {
// değişken sıfırdan başlatılıyor
i = 0;
do {
// filmin kopyaları hazırlanıyor

isim="bar"+i;
duplicateMovieClip (_root.bar,isim, i);
// kopyalar i derecesinde döndürülüyor
setProperty (_root[isim], _rotation, i);
// giderek artan şeffaflık sağlanıyor
setProperty (_root[isim], _alpha, (i/360)*100);
// artış 30 ar 30 ar sağlanıyor
i = i+30;
// koşul denetleniyor
} while (i<361);
// orjinal klip görülmez oluyor
bar._visible = 0;
}

For için:

on (release) {
for (i=0; i<361; i += 30) {
isim="bar"+i;
duplicateMovieClip (_root.bar, isim, i);
setProperty (_root[isim], _rotation, i);
setProperty (_root[isim], _alpha, (i/360)*100);
}
bar._visible = 0;
}