ActionScript 3 Dersleri-3 : Döngüler
Burak AYDIN Tarih: 9/05/2008 Yorum: 1 adet
Okunma : 812 Tutanlar: Bu yazıyı 1 kişi tuttu.
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.
FOR DÖNGÜSÜ:
Integer cinsinde getir adında bir değişken tanımlıyoruz.
var getir:int;
for( getir = 0′la; getir küçük eşit 50 olana dek; getire bir ekle ) şeklinde for dönügüsü kuruyoruz.
for (getir = 0; getir <= 50; getir++)
{
trace(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.
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ğıdaki kodları 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.Tüm elemanları yazdırmak için uyeler dizisi ve her defasında oluşan sira ‘ yı kullanıyoruz;
for (var sira:String in uyeler)
{
trace(sira);
trace(uyeler[sira]);
}
Output Panelindeki Çıktısı:
0 burak 1 hasan 2 mehmet 3 gokhan
Her dönüşte gelen >> uyeler[0], uyeler[1], uyeler[2], uyeler[3] dır.
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 konusu daha ayrıntılıdır. İhtiyacınız olursa yardım dosyalarına bakınız (F1). Kolay gelsin..
Makale
İlişkili makale bulunamadı.
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Konferans
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 261 (3 kayıtlı, 258 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
500 Hatası Hakkında!
merhaba arkadaşlar, bir önceki yazıda bahsettiğimiz üzere sunucunun ram ihtiyacını yavaş yavaş gidermeye başladık. An itibariyle 2 Giga d ...
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız
MMIstanbul Online Seminerlerine Nasıl Katılabilirim?




guzel anlatmisin kardes eline saglik