2011-10-27 65 views

回答

8

你可以使用Math.random()這將返回一個數字0和1

之間因此,爲獲得該陣列的隨機元素的隨機數,使用:

function getRandomElementOf(array:Array):Object { 
    var idx:int=Math.floor(Math.random() * array.length); 
    return array[idx]; 
} 
+0

嗨,謝謝你的回答,但我怎麼能把他們放在舞臺上? 我試着用addChild(數組[idx]),但不工作; – CMS

+0

''stage.addChild(getRandomElementOf(movieClipArray));''或'stage.addElement(getRandomElementOf(movieClipArray));' –

+0

您需要在添加之前設置影片剪輯的'x'和'y'屬性(或你甚至可以做到這一點後加入) –

0

如果您已經有Array,您應該可以定義隨機排序,然後您可以根據需要將它們添加到舞臺。

//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

爲什麼要排序和重新排列數組,當你只能得到一個隨機索引? –

+0

我推測在OP的問題中關於「獨特」的評論表明他想要確保剪輯不會被多次拉出。如果需要,您可以創建一個索引數組以匹配影片剪輯數組...隨機化索引數組...然後從隨機列表1中一次抽取,直到完成以確保沒有重複。 – scunliffe

+0

是的,你是對的! –