Dizi İçeriğini Randomize Değiştirmek


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.

DOSYAYI İNDİR

Uygulama:

1- Sahneye 6 klip yerleştirin. Ve sırası ile bu kliplere instance name olarak 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.