我已经看过几个随机数问题但是没有取消它以及如何使用它。我想生成0.5到2 EG 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将前往其位置的速度:
任何帮助表示赞赏
伊恩
答案 0 :(得分:1)
Ok解决了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});
}
}
答案 1 :(得分:0)
Math.random()
返回0.0到0.99999999 {不确定小数位数。)
因此,如果您的随机数为.23456
,那么您* (2 - 0.5 + 1)
会将其带到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为0小数点你想要的。