Flash actionscript 3.0 ile rastgele tekrarsız sayı üretme
Öncelikle bir actionscript 3.0 dosyası açıyoruz.Sahne alanında bir adet buton ve 5 adet movie clip nesnesi oluşturuyoruz.Movie Cliplerin içerisine sırayla 1 den 5 e kadar sayılardan oluşan metin kutuları ekliyoruz.
Oluşturduğumuz nesnelerin örnek adlarını veriyoruz.sayılı movie cliplere sekil1,sekil2,sekil3,sekil4,sekil5 adlarını veriyoruz…
Sonra kodlamaya geçiyoruz.kodları flash arayüzünde frame alanına ekleyeceğiz…
Kodları açıklama satırları ile altta veriyorum.
import flash.events.MouseEvent;
sekil1.visible=false;
sekil2.visible=false;
sekil3.visible=false;
sekil4.visible=false;
sekil5.visible=false;
//Butonumuza basıldığında çalıştıran dinleyici
dizbtn.addEventListener(MouseEvent.MOUSE_DOWN,dizfonk);
function dizfonk(Event:MouseEvent):void{
//buton içinde diz fonksiyonumuzu tetikliyoruz...
diz();
}
//diz adını verdiğimiz fonksiyon içinde kodlarımızı tanımlıyoruz...
function diz():void{
//değişkenlerimizi tanımladık:
var intRandom:int;
var hesap:Array=new Array();
var dizme:Array=new Array();
//for döngüsü ile 1 den 5 e kadar sayıları dizme array dizisinin içinde
//tutuyoruz..
for(var i:int=1; i<6; i++){
dizme.push(i);
}
//bir while döngüsü ile rastgele sayılar seçip hesap array dizisine
//atıyoruz..
while(dizme.length>0){
intRandom=Math.random() * dizme.length;
hesap.push(dizme[intRandom]);
//sayıların tekrarsız çıkması için 'splice' ediyoruz...
dizme.splice(intRandom,1);
}
//getChildByName metoduyla movie clip nesnlerimizi dinamik hale
//getiriyoruz ve random sayıları atıyoruz...
getChildByName("sekil"+String(hesap[0])).visible=true;
getChildByName("sekil"+String(hesap[1])).visible=true;
getChildByName("sekil"+String(hesap[2])).visible=true;
getChildByName("sekil"+String(hesap[3])).visible=true;
getChildByName("sekil"+String(hesap[4])).visible=true;
//Dinamik konumları vererek her sayının her defasında farklı
//konumlanmasını sağlıyoruz...
getChildByName("sekil"+String(hesap[0])).x=100;
getChildByName("sekil"+String(hesap[1])).x=150;
getChildByName("sekil"+String(hesap[2])).x=200;
getChildByName("sekil"+String(hesap[3])).x=250;
getChildByName("sekil"+String(hesap[4])).x=300;
getChildByName("sekil"+String(hesap[0])).y=250;
getChildByName("sekil"+String(hesap[1])).y=250;
getChildByName("sekil"+String(hesap[2])).y=250;
getChildByName("sekil"+String(hesap[3])).y=250;
getChildByName("sekil"+String(hesap[4])).y=250;
}