İlk makalemde size Flash içerisinde objeleri belirli satır sütun sayısına göre nasıl dizebileceğinizi anlatmaya çalışacağım. Bu makaleyi dikkatlice okursanız, for döngüsü kullanarak mevcut bir movieClipi nasıl çoğaltacağınızı ve çoğaltılan movieClip'leri nasıl sıralayacağınızı öğrenebilirsiniz. Yeni bir flash dosyası açın ve içine bir tane kare çizin. Kareyi f8'e basarak movieClibe çevirin. Kare'ye bir defa tıklayın ve Properties alanını açın. Instance name alanına kare_mc yazın.
Daha sonra timleine'da birinci frame bir defa tıklayıp Actions panelini açın.
Şimdi yapmak istediğimiz şeyi belirleyelim. 4erli sıra halinde dizilmiş 17 tane kare yapmak istiyoruz.
action paneline ;
Code:
var kare_sayisi:Number = 17;
yazalım.
4erli dizmek istediğimiz için;
Code:
var sutun:Number = 4;
ekliyoruz
ana sahneye yaptığımız kare_mc ilerde işimize yaramayacağı için onu görünmez yapalım.
Code:
kare_mc._visible = false;
daha sonra bir for döngüsü kurup kare_mc'den 17 tane çoğaltacağız.
Code:
for (var i:Number=0; i<kare_sayisi; i++) {
kare_mc.duplicateMovieClip("kare"+i, i);
this["kare"+i]._x = i%sutun*(kare_mc._width+5)+10;
this["kare"+i]._y = Math.floor(i/sutun)*(kare_mc._height+5)+10;
} gördüğünüz gibi % işareti yani mod ile işlemi hallettik.
////////
mod nedir diyenler için ise kısa bir örnek vermek istiyorum.
Code:
var sonuc:Number = 5%2;
trace(sonuc);
//output 1 olacaktır.
bunun anlamı şudur. 5i 2ye bölersiniz ve kalanı alırsınız. işte bu işlem size bir sayının diğerine bölümünden kalanı verir.
///////
yukardaki kodun tamamı şöyle olmalı;
Code:
var kare_sayisi:Number = 17;
var sutun:Number = 4;
kare_mc._visible = false;
for (var i:Number=0; i<kare_sayisi; i++) {
kare_mc.duplicateMovieClip("kare"+i, i);
this["kare"+i]._x = i%sutun*(kare_mc._width+5)+10;
this["kare"+i]._y = Math.floor(i/sutun)*(kare_mc._height+5)+10;
} Kaynak:
http://www.adobeistanbul.com/makaleler/index.cfm?makale_id=119