Actionscript 3 如何生成随机数并多次使用它?
所以我需要生成随机数并使用它几次,问题是它是在EnterFrame函数上生成的 此函数生成数字0-5:Actionscript 3 如何生成随机数并多次使用它?,actionscript-3,flash,random,actionscript,Actionscript 3,Flash,Random,Actionscript,所以我需要生成随机数并使用它几次,问题是它是在EnterFrame函数上生成的 此函数生成数字0-5: function pn():Number { var pn:Number = Math.round(Math.random()*5); return pn; } 在这里,我检查角色是否没有跳跃和stage.addEventListener(Event.ENTER_FRAME,jump) 这里是跳跃函数,我需要使用随机生成的数字: function jump(e) {
function pn():Number {
var pn:Number = Math.round(Math.random()*5);
return pn;
}
在这里,我检查角色是否没有跳跃和stage.addEventListener(Event.ENTER_FRAME,jump)
这里是跳跃函数,我需要使用随机生成的数字:
function jump(e) {
if ( i < 50) {
i++;
item[1][pn()].y -=1
} else {
item[1][pn()].y += 1;
if (item[1][pn()].y == 0){
stage.removeEventListener(Event.ENTER_FRAME, jump)
}
}
在此之后,它可以生成新的号码。你有什么想法吗?谢谢。创建一个名为myRandomNumber的实例变量。在它的getter中,如果为null,则调用pn()来填充它 大概是这样的: 在类中,定义变量:
private var _myRandomNumber:int = 0;
在你的getter中:
public function get myRandomNumber():int {
if (_myRandomNumber == 0) {
_myRandomNumber = pn();
}
return _myRandomNumber;
}
现在,当您调用myRandomNumber时,您将得到一个“随机数”:)//在作用域链的更高位置创建一个变量来存储该数字
var random=0;
//假设该函数与跳转函数位于同一级别
//函数()????{
如果(!main跳跃){
main=true;
random=pn();//跳转开始时生成新的随机数
stage.addEventListener(Event.ENTER_FRAME,jump)
}
//}
函数跳转(e){
var item=item[1][random];//获取随机项
如果(i<50){
i++;
项目y-=1
}否则{
项目y+=1;
如果(item.y==0){
stage.removeEventListener(Event.ENTER_FRAME,jump)
}
}
}
谢谢你的回答,但我误解了怎么做。你能给我举个例子吗?再次感谢你!我误解了它是如何产生随机数的?它总是返回0或否?您将myRandomNumber初始化为0。然后,在getter中,如果它仍然为0,则通过_myRandomNumber=pn()填充它@StanislovasKalašnikovas这有意义吗?
private var _myRandomNumber:int = 0;
public function get myRandomNumber():int {
if (_myRandomNumber == 0) {
_myRandomNumber = pn();
}
return _myRandomNumber;
}
// Create a variable higher up the scope chain to store the number
var random = 0;
// Assuming this is in a function at the same level as the jump function
//function() ???? {
if(!mainJumping){
mainJumping = true;
random = pn(); // Generate new random number when jump begins
stage.addEventListener(Event.ENTER_FRAME, jump)
}
//}
function jump(e) {
var item = item[1][random]; // Grab the random item
if ( i < 50) {
i++;
item.y -=1
} else {
item.y += 1;
if (item.y == 0){
stage.removeEventListener(Event.ENTER_FRAME, jump)
}
}
}