AS3 - 9 种不同的动态文本数组中的随机值

AS3 - random value in 9 different dynamic text with array

请帮我做一个小项目。 我有 9 个不同的动态文本和 9 个默认值。 我需要的! 当我按 'enter' 时,必须随机选择并仅显示一个值。 像轮盘赌或老虎机。初始值必须在同一个地方,但只能显示一个。

在第二次按下键盘(输入)时,它必须更改并显示初始值。 和那个循环

现在我编写了一个代码来更改 value1.text 上的值(从数组中随机选择)

function randomJob(){
        var jobs:Array = new Array("apple", "lemon", "banana", "orange", "mandarin", "lime", "kiwi", "pear", "apricot");
        value1.text = jobs[randomNumber(jobs.length-1)];
}

function randomNumber(max){
        return(Math.round(Math.random()*max));
}

this.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
function keyDownHandler(event : KeyboardEvent) : void
{
    if (event.keyCode == Keyboard.ENTER)
    {
        randomJob();
    }
}

示例:

您只需要知道这是您的第一个 "enter" 到 select 文本字段,还是第二个重置文本字段文本的字段,因此您可以这样做:

var fruits:Array = ['apple', 'lemon', 'banana', 'orange', 'mandarin', 'lime', 'kiwi', 'pear', 'apricot'];
var texts:Array = [];           // array to put your text fields
var first_time:Boolean = true;  // indicates if it's the first enter

for(var i:int = 0; i < fruits.length; i++){
    var text_field:TextField = new TextField();
        text_field.x = 50;
        text_field.y = 50 + 28*i;
        text_field.height = 25;
        text_field.text = fruits[i];
        text_field.border = true;
    addChild(text_field);
    texts.push(text_field);
}

stage.addEventListener(
    KeyboardEvent.KEY_DOWN,
    function (e:KeyboardEvent):void {
        if (e.keyCode == Keyboard.ENTER){
            if(first_time){
                first_time = false;
                var index:int = Math.round(Math.random()*(fruits.length-1));
                for(var i:int = 0; i<fruits.length; i++){
                    if(i != index){
                        // if it's not the randomly selected text field, then set its text to "bad luck"
                        texts[i].text = 'bad luck';
                    }
                }   
            } else {
                // if you want repeat again, set first_time = true
                //first_time = true;
                for(i = 0; i < fruits.length; i++){
                    // reset all text fields
                    texts[i].text = fruits[i];
                }
            }
        }
    }
)

希望能帮到你。