2011-10-27 19 views

cevap

8

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]; 
} 
+0

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

+0

'stage.addChild (getRandomElementOf (movieClipArray));' veya “stage.addElement (getRandomElementOf (movieClipArray));' –

+0

Eklemeden önce movieclips'in 'x' ve' y 'özelliklerini önceden ayarlamanız gerekir (veya ekledikten sonra bunu bile yapabilirsiniz) –

0

Zaten bir Array1 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; 
} 
+0

Neden rastgele bir endeks alabiliyorsanız diziyi sıralamak ve yeniden düzenlemek için? –

+0

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

+0

evet, haklısınız! –