防止选择超过3个的随机框架标签

时间:2018-11-16 01:32:37

标签: actionscript-3 flash

下面的代码执行了我需要做的事情,只是没有连续两次选择随机帧标签。但是,我需要更进一步。现在,我还需要以某种方式编写此代码,即已选择的任何随机帧都将退出数组,并且不会再次被选中。在实现这一目标方面的任何帮助将不胜感激。这是我的代码:

    function getRandomLabel(currentLabel: String): String {
    var labels: Array = ["e1" , "e2", "e3", "e4", "e5", "e6", "e7", "e8" ];
    var currentIndex: int = labels.indexOf(currentLabel);
    if (currentIndex > -1)
        labels.splice(currentIndex, 1);
    var index: Number = Math.floor(Math.random() * labels.length);
    return labels[index];
}

1 个答案:

答案 0 :(得分:1)

非常容易。您需要的是将标签保留在函数之外(在您的代码中,它是一个函数局部变量,并且在每次调用时都会重新填充它),并根据请求提取每个变量,以便下次不在列表中。

var labels:Array = ["e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8"];

function getRandomLabel():String
{
    var anIndex:int = Math.random() * labels.length;
    var result:String = labels[anIndex];

    labels.splice(anIndex, 1);
    return result;
}