Mehmetoglu.org ActionScript 3 Dersleri - 7 [Döngüler]

Posted on Cuma, Mart 21st, 2008 at 09:19

Not: (” Tırnak) işaretlerini kodlamada yeniden yazmanız gerekmektedir.

Bu dersimizde döngülere değineceğiz. Bir çok çalışmamızda döngüleri kullanacağız. Döngüler program her döndüğünde istenilen işlemleri yaptırmaya yarar.

// Kodlamar buradan itibaren başlamıştır

// FOR DÖNGÜSÜ

// Integer cinsinde getir adında bir değişken tanımlıyoruz

var getir:int;

// for döngüsünü burada kuracağız.

// getir = 0′la; getir küçük eşit 50 olana dek; getire bir ekle
for (getir = 0; getir <= 50; getir++)
// Her döndüğünde son saymaya bir eklenmektedir. Böylece Output ekranına 1,2,3,4..50 şeklinde sayılar yazdırılır.

{
trace(getir);
}

//Yani getir sıfırdır. Bir ekle, yaz, bir ekle, yaz.. getir küçük eşit 50 olana dek.

////////////////

// Şimdi bu örneği ActionScript panelinden silip aşağıda verdiklerimi yazmaya başlayabilirsiniz.

var getir2:int;
for (getir2 = 0; getir2 < 10; getir2 ++) {

// Buraka kadar herşey aynıydı. Şimdi kütüphaneden topu 10 kez çekmeye ve sahnede düzenlemeye çalışacağız.

/* Bir top figürü çizin ve film klibine çevirin. İsmi mühim değil.

Kütüphaneyi açın ve film klibine sağ tıklayarak “Linkage” sekmesini tıklatın.

İlk seçenek olan Export for ActionScript çentiğini aktif edin. Üçüncü seneçek kendi kendine açılacaktır.

Class kutucuğuna top yazın. */

//Linkage ismi top olan sembolü gelenMc olarak tanımlıyoruz.

var gelenMc:top = new top();

// Topları sağa ve aşağı doğru çapraz dizilimle sıralayalım.

// Dizilim başlamadan önce birinci topumuzun x ve y eksenindeki konumunu girebilirim. 

 gelenMc.x = getir2 * gelenMc.width;

/* Program birinci kez döndüğünde gelecek olan topun x eksenindeki konumu: getir(0) ÇARPI gelenMc ‘nin eni(100) */

gelenMc.y = getir2 * gelenMc.height;

// Program birinci kez döndüğünde gelecek olan topun y eksenindeki konumu, getir(0) ÇARPI gelenMc ‘nin boyu = 100

 // ve bu değerlerle gelenMc ‘yi sahneye ekle

addChild(gelenMc); //

/* Döngü burada sona eriyor. Yani yeniden başa dönüp herşeyi ikinci kez yapmaya şu andan itibaren başlıyor. İşte bu yüzden her seferinde son eklenen topun konumu  

[ gelenMc.x = getir * gelenMc.width; ]

[ gelenMc.y = getir * gelenMc.height; ]

‘den dolayı 100 artarak değişiyor. Top için hem x hem de y ekseni 100 piksellik bir (topun eni ve boyu 100 ‘dür) artışla geri dönüyor.

0(getir) * 100 = 0

1(getir) * 100 = 100

2(getir) * 100 = 200

3(getir) * 100 = 300

… 

50 * 100

*/

}

/* Böylece toplar birbirine dayalı yanyana dizilecekler. Tabi aynı şeyler boylar içinde söz konusu olduğundan çapraz dizilim elde edeceğiz */

// FOR.. IN

// Bir örnekte for in için yapalım. uyeler adında bir dizi oluşturuyoruz.

var uyeler:Array = ["burak", "hasan", "mehmet", "gokhan"];

/* For döngüsü ile dizi içeriğindeki nüfusu, sira adli string değişken olarak tanımlıyoruz(0,1,2,3). Böylece (0,1,2,3) ‘e kadar herkesi sırayla çağırabileceğiz */

for (var sira:String in uyeler)
{

// Tüm elemanları yazdırmak için uyeler dizisi ve her defasında oluşan sira ‘ yı kullanıyoruz;

trace(sira); 

trace(uyeler[sira]);
}

/* Çıktı

0
burak
1
hasan
2
mehmet
3
gokhan

*/

// Her dönüşte gelen >> uyeler[0], uyeler[1], uyeler[2], uyeler[3],

///////

// FOR EACH.. IN

var Obje:Object = {burak:20, hasan:30, mehmet:50};
for each (var degerler in Obje)
{
trace(degerler);
}

// WHILE

var sayma:int = 0;
while (sayma <= 5)
{
trace(sayma);
sayma++;
}

// DO WHILE

var saymaIki:int = 5;
do
{
trace(saymaIki);
saymaIki++;
} while (saymaIki < 5);

// Gördüğünüz gibi şart do while’da en sonda. Bu yüzden şart sağlanmasa bile döngü birkez gerçekleşir ve devam edilebilirlik için karar verilir diye biliyorum.

// Ayrıca tüm döngülerde çalışacağını sandığım önemli bir komuttan bahsedeyim. break; Bu komutla döngüyü istediğimiz

// yerde durdurabiliriz.

// While döngüsünü ele alalım. Koşullar kısmını doldurduğumuzu varsayıyorum (…) ardından yapılacaklar {….

// şeklinde açtığımız ayracın sonuna şartımızı yazıyoruz: Eğer i 3 ‘den daha büyük olduysa bitir yazalım; if (i > 30)

// { break; }  ardından döngünün yapılacaklar kısmınıda kapatıyoruz }.

// Yani;

var sayma2:int = 0;
while (sayma2 <= 5) {
 trace(sayma2);
 sayma2++;

 if (sayma2 > 2) {
  break;
 }
}

// Döngüler daha ayrıntılıdır. İhtiyacınız olursa yardım dosyalarına bakınız (F1)

_____________________________________ 

Sonuç >> http://www.mehmetoglu.org/as3_dersler/ders_07.swf

Proje dosyası >> http://www.mehmetoglu.org/as3_dersler/ders_07.fla

Kaynak: www.mehmetoglu.org | Kaynak gösterilmeden yayınlanması ayıp ve yasaktır

İstersen yorum yazabilirsin, ya da kendi sitenden "geridönüş" (trackback) ekleyebilirsin.

5 Yorum yazılmış

 1 
babacan:

çok karizmatik site olmuş güsel yani abartmayalm….

Mayıs 5th, 2008 at 11:29
 2 

Allah tuttuğunu altın etsin, bin musibetten kurtarsın yani abartmayalım teşekkürler :)

Mayıs 7th, 2008 at 15:42
 3 

bu derslerin birincisi yokmu başlangıcı nerde acaba üstad :)

Ağustos 22nd, 2009 at 22:50
 4 

tamam buldum teşekkürler :)

Ağustos 22nd, 2009 at 22:51
 5 

est. Ne demek (:

Ağustos 23rd, 2009 at 01:16

Yazmayan ölsün..

Adın
e-Postan (Yayımlarsam ne olim)
Siten
Gençliğini neyle değerlendirdin?
Yorumun: