嘿大家我已经看到一些关于这个论坛,但似乎无法弄清楚仍然。如何获得随机生成的数字没有重复
所以我有一个名为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