Bir dizi movieclips var ve onları sahneye koymak istiyorum. Bu yüzden benzersiz ve rastgele seçilmiş olmaları gerekiyor.Array Actionscript'in rastgele bir elemanını seçin 3
Bunu nasıl yapabilirim?
Bir dizi movieclips var ve onları sahneye koymak istiyorum. Bu yüzden benzersiz ve rastgele seçilmiş olmaları gerekiyor.Array Actionscript'in rastgele bir elemanını seçin 3
Bunu nasıl yapabilirim?
Bu dizinin rastgele eleman almak için, So 0 ve
1 arasında bir sayı döndürür Math.random()
kullanarak rastgele sayı alabilirsiniz, bunu kullan zaman için teşekkür ederiz:
function getRandomElementOf(array:Array):Object {
var idx:int=Math.floor(Math.random() * array.length);
return array[idx];
}
Zaten bir Array
1 varsa, rasgele bir sıralama tanımlayabilmeniz gerekir, sonra bunları gerektiği gibi sahneye ekleyebilirsiniz.
//get your array as needed...
var myArray:Array = getYourMovieClipsArray();
//randomize it by "sorting" it...
myArray.sort(randomSort);
//do something with them...
for(var i:int=0;i<myArray.length;i++){
addChild(myArray[i]);
}
//sorting function
public function randomSort(objA:Object, objB:Object):int{
return Math.round(Math.random() * 2) - 1;
}
Neden rastgele bir endeks alabiliyorsanız diziyi sıralamak ve yeniden düzenlemek için? –
OP'nin sorgusunda "benzersiz" hakkındaki yorumu, kliplerin birden çok kez çekilmediğinden emin olmak istediğini belirttim. İstenirse, film klibi dizisiyle eşleştirmek için bir dizi indeks oluşturabilirsin ... indeks dizisini rasgele hale getirin ... sonra da çoğaltılmadan emin olmak için bitinceye kadar rastgele listeden 1 koparın. – scunliffe
evet, haklısınız! –
Merhaba, cevabınız için teşekkür ederim, ama onları nasıl satüre koyabilirim? addChild (array [idx]) ile çalıştım ama çalışmıyor; – CMS
'stage.addChild (getRandomElementOf (movieClipArray));' veya “stage.addElement (getRandomElementOf (movieClipArray));' –
Eklemeden önce movieclips'in 'x' ve' y 'özelliklerini önceden ayarlamanız gerekir (veya ekledikten sonra bunu bile yapabilirsiniz) –