Bu çalışmanın amacı mevcut bir dizinin elemanlarını
randomize olarak yeniden düzenlemektir. Çalışmaya
görsel etkinlik katabilmek için bu randomize değişiklikler ile
sahnedeki kliplerin x ve y koordinatlarını değiştirilmiştir. Bu
sayede butona her bastığınızda sahnedeki 6 klip randomize olarak
yer değiştirmektedirler.
1- Sahneye 6 klip yerleştirin.
Ve sırası ile bu kliplere instance nameolarak
klip1, klip2, klip3,
klip4, klip5, klip6
isimlerini atayın.1,2...,6 şeklindeki rakamsal eklemeler
çok önemlidir.Bunlar daha sonra kod içinde kullanılacaktır.
2- Kodları yerleştirmek için
sahnede bir buton oluşturun ve bu butona şu kodları atayın:
on(release){
//Sahnedeki kliplerin x ve y değerleri alınıyor
var x1=klip1._x;
var y1=klip1._y;
var x2=klip2._x;
var y2=klip2._y;
var x3=klip3._x;
var y3=klip3._y;
var x4=klip4._x;
var y4=klip4._y;
var x5=klip5._x;
var y5=klip5._y;
var x6=klip6._x;
var y6=klip6._y;
//Bir dizi oluşturulup değerler daha sonra
randomize olarak yer değiştiriliyor
var dizi = ["1","2","3","4","5","6"];
function yukle (kaynak, index) {
var once = _root[kaynak].slice(0, index);
var sonra = _root[kaynak].slice(index+1, _root[kaynak].length);
_root[kaynak] = once.concat(sonra);
}
function randomizeDizi (kaynak) {
var tmpDizi = [];
var diziUzunluk = _root[kaynak].length;
for (var i = 0; i<diziUzunluk; i++) {
var index = Math.floor(Math.random()*_root[kaynak].length);
tmpDizi[i] = _root[kaynak][index];
yukle(kaynak, index);
}
return tmpDizi;
}
sondiziX=randomizeDizi("dizi")
//Ve bu random değerler kliplere yeni bir
koordinat atamada kullanılıyor.
klip1._x=this["x"+sondiziX[0]];
klip1._y=this["y"+sondiziX[0]];
klip2._x=this["x"+sondiziX[1]];
klip2._y=this["y"+sondiziX[1]];
klip3._x=this["x"+sondiziX[2]];
klip3._y=this["y"+sondiziX[2]];
klip4._x=this["x"+sondiziX[3]];
klip4._y=this["y"+sondiziX[3]];
klip5._x=this["x"+sondiziX[4]];
klip5._y=this["y"+sondiziX[4]];
klip6._x=this["x"+sondiziX[5]];
klip6._y=this["y"+sondiziX[5]];
}
İlk bölümde sahnedeki 6
klibin x ve y değerleri x1,...x6
ve y1...,y6 isimli değişkenlere atanıyor.Buradaki
1,2..,6 şeklindeki rakamsal eklentilere dikkat
ediniz.Aynı eklentiler klip isimlerinde de kullanılmıştı.Bunları
daha sonra kodlarda işleyeceğiz.
İkinci bölümde içeriği 1,2..6
şeklinde olan bir dizi oluşturuluyor. Daha sonra içiçe geçmiş
2 adet fonksiyonla bu dizinin elemanları randomize olarak değiştiriliyor.
İçeriği değiştirilen bu dizi sondiziX adı ile
yeniden oluşturuluyor.
Üçüncü bölümde 1 den 6 ya kadar
olan dizinin rakamsal değerleri kliplerin yeni koordinat yapılanmasında
kullanılıyor. Bunu bir örnekle açıklayalım.
klip1._x=this["x"+sondiziX[0]];
klip1._y=this["y"+sondiziX[0]]; yandaki dizilimde
klip1`in x ve y
değerleri değiştirilmektedir.İlk dizimizde 0 index ilk
değer olan 1 idi. Ama bu dizinin içeriği daha
sonra randomize olarak değiştirildiğinden 0 index değeri 1
den 6 ya kadar herhangi bir rakam olabilir.Bu
rakamı 4 olarak kabul edersek görüntü şöyle olur:
klip1._x=this["x"+4];
klip1._y=this["y"+4];
Açılıma devam edersek:
klip1._x=x4;
klip1._y=y4;
Sayfanın en üstündeki giriş
kodlarına bakarsanız var x4 ve var y4
olarak bu kodlara değer verilmişti. Neydi bu değerler?
klip4`ün x ve y koordinatları.
Bu durumda klip1 yer değiştirip klip4`ün
yerine geçecektir. Aynı işlemler diğer klipler için de tekrarlanır.
1 den 6 ya kadar olan rakamlar daima birer kez kullanıldığından
hiçbir klip üst üste gelip çakışmayacak, atanan kodlara bağlı
olarak birbiri ile yer değiştireceklerdir.