【发布时间】:2015-12-18 12:30:59
【问题描述】:
大家好,我看过一些关于这个的论坛,但似乎仍然无法弄清楚。
所以我有一个名为 aClockArray 的数组,这是一个自定义数组,其中包含 4 个电影剪辑。嵌套的影片剪辑的每一帧都有不同的颜色。我在构造函数中设置了这样的数组:
aClockArray = [playScreen.wire_5, playScreen.wire_6, playScreen.wire_7, playScreen.wire_8];
然后在另一个函数中,我有一个 for 循环设置来遍历数组中的所有对象,并让它们 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);
}
}
现在这很完美,每次重新启动时我都会得到随机颜色。但我想要完成的是颜色不要重复,所以不要让nWire = randomNumber(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);
}
【问题讨论】:
标签: arrays actionscript-3 for-loop random flashdevelop