Actionscript 3 如何生成随机数并多次使用它?

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) {

所以我需要生成随机数并使用它几次,问题是它是在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) { 
        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)
        }
    }
}