我已经看过几个随机数问题,但不理解它,以及我如何使用它。我想生成一个介于0.5和2EG 0.5,1.1,1.2,1.3等之间的数字,并在补间中使用这一点。这就是我所拥有的:
var letters:Array = [Rbox1, Rbox2, Rbox3, Rbox4, Rbox5, Rbox6,
Rbox7, Rbox8, Rbox9, Rbox10, Rbox11, Rbox12]
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
start_mc.addEventListener(MouseEvent.CLICK, startAni);
function startAni(event:MouseEvent):void{
for (var i:String in letters) {
var letterX:int = letters[i].x;
var letterY:int = letters[i].y - 450;
TweenLite.to(letters[i], 1, {x:letterX, y:letterY});
}
}这一行中的1成为随机数
TweenLite.to(letters[i], 1, {x:letterX, y:letterY});这是每个Rbox移动到其位置的速度:
感谢您的任何帮助
伊恩
发布于 2014-02-06 20:17:56
对于1到10之间的随机数,确定已解决
start_mc.addEventListener(MouseEvent.CLICK, startAni);
function startAni(event:MouseEvent):void{
TweenLite.to(start_mc, 1, {alpha:0});
for (var i:String in letters) {
var letterX:int = letters[i].x;
var letterY:int = letters[i].y - 450;
var minLimit:uint = 1;
var maxLimit:uint = 10;
var range:uint = maxLimit - minLimit;
var myNum:Number = Math.ceil(Math.random()*range) + minLimit;
TweenLite.to(letters[i], myNum, {x:letterX, y:letterY, delay:1});
}
}发布于 2014-02-06 21:30:19
Math.random()返回0.0到0.99999999 {不确定小数位数)。
所以如果你的随机数是.23456,那么你就把这个带到0.5864。
Math.floor()正在删除您的小数位。
所以这就是将你的0.5864带到0。然后你使用+ 0.5。把它带到奇怪的0.5。
如果你需要你的结果是小数点后1位,就像你列出的那样,数学的问题是Math.floor太早了。尝试:
var result:Number = Math.floor(((Math.random() * (max - min)) + min) * 10) / 10;如果您需要超过1位小数,可以将10转换为100表示2,或将1000转换为3..如果你希望它是动态的,你可以用Math.pow(10, dp);修改10,DP是你想要的小数点后几位。
https://stackoverflow.com/questions/21602472
复制相似问题