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

时间:2015-03-02 19:53:24

标签: arrays actionscript-3 random

请帮我一个小项目。 我有9种不同的dinamic文本,有9个默认值。 我需要的! 当我按下'进入'#39;必须随机选择并只显示一个值。 像一个轮盘或老虎机。初始值必须在同一个地方,但只能显示一个。

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

的循环

现在我做了一个代码来改变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();
    }
}




例如: preview

1 个答案:

答案 0 :(得分:1)

你只需知道它是否是你的第一个"输入"选择一个文本字段,或第二个重置文本字段文本,所以你可以这样做:

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];
                }
            }
        }
    }
)

希望可以提供帮助。