嘿大家我已經看到一些關於這個論壇,但似乎無法弄清楚仍然。如何獲得隨機生成的數字沒有重複
所以我有一個名爲aClockArray
的數組,這是一個自定義數組,裏面有4個影片剪輯。嵌套的影片剪輯對每個幀都有不同的顏色。我已在陣列設置像這樣在我的構造函數:
aClockArray = [playScreen.wire_5, playScreen.wire_6, playScreen.wire_7, playScreen.wire_8];
在另一個函數
然後,我有一個for循環建立通過所有對象的數組進行迭代,並讓他們gotoAndStop在他們的嵌套影片一個隨機幀它夾
private function randomColorGenerator():void
{
//Loop through wires and make them randomn generate color
for (var i:int = 0; i < aClockArray.length; i++)
{
var currentWires = aClockArray[i];
nWire = randomNumber(2, 7);
currentWires.gotoAndStop(nWire);
}
}
現在這個完美的作品,我也得到隨機顏色我每次重啓時間:2-7我有它隨機像這樣去。但我想要完成的是顏色不要重複,所以不要重複2至7個數字。我會如何去做這些事情,讓這些數字隨機生成而不是重複?
而且這裏是我的randomNumber
功能:
//Generates a truly "random" number
function randomNumber(low:Number=0, high:Number=1):Number
{
return Math.floor(Math.random() * (1+high-low)) + low;
}
感謝您的幫助,將不勝感激!
嘗試過這樣的事情,但仍然有重複:(
//Loop through wires and make them randomn generate color
for (var i:int = 0; i < aClockArray.length; i++)
{
var currentWires = aClockArray[i];
var frames:Array = [2, 3, 4, 5, 6, 7, 8];
var randomFrame:uint = frames.splice(Math.floor(Math.random() * frames.length), 1);
currentWires.gotoAndStop(randomFrame);
}
感謝您對本病的讓你知道如何去後的今天,當我嘗試一下! – Nathan
它可能會略有* *更快第一隨機排列,然後用'POP()'或'移()'(什麼@Flashist是*試圖*完成),不過這也是一個很好的解決方案和最緊湊。除非你每幀都在運行代碼,否則不應該有任何性能差異。 – BadFeelingAboutThis
仍然困惑我將如何實現這一點。我仍然會用我目前的Loop嗎?添加這樣的東西,並從那裏拼接? – Nathan