Привет всем, я видел некоторые форумы об этом, но, похоже, пока не понял его.Как получить случайные сгенерированные числа без повторения
Итак, у меня есть массив, называемый aClockArray
, и это настраиваемый массив, в котором есть 4 видеоклипа внутри. Вложенные видеоклипы имеют разные цвета для каждого кадра. Я массив создан, как это в моем конструкторе:
aClockArray = [playScreen.wire_5, playScreen.wire_6, playScreen.wire_7, playScreen.wire_8];
Тогда в другой функции У меня есть для цикла настройки для перебора всех объектов в массиве и иметь их gotoAndStop на случайный кадр в их гнездовой вИДЕО его идет от 2-7, что у меня есть это рандомизации, как так:
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);
}
}
Теперь это работает идеально, и я получаю случайные цветы каждый раз, когда я перезагрузки. Но то, что я хотел бы сделать, - это не повторять цвета, чтобы не повторять повторные цифры чисел 0-. Как бы я сделал это, чтобы эти числа случайным образом генерировались, а не повторялись?
Также Вот моя 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()' или 'shift()' (что делает @Flashist * пытается * выполнить), но это также хорошее решение и самый компактный , Если вы не используете код для каждого кадра, не должно быть никаких различий в производительности. – BadFeelingAboutThis
Все еще запутался, как я это реализую. Смогу ли я использовать мой ток для Loop? Добавляя к нему что-то подобное и сращивая его оттуда? – Nathan