var arr:Array = new Array("A","B","C")
//random number
var rand:Number = Math.floor(Math.random()*arr.length)
//my text
t1.text = arr[rand]
t2.text = arr[rand]
t3.text = arr[rand]
答案 0 :(得分:1)
像
这样的东西private function getRandomText():String
{
var rand:Number = Math.floor(Math.random() * arr.length);
// this will both get you the random string from the array
// and remove it from the array making sure you won't get the same text next time
var randomString:String = arr.splice(rand, 1);
return randomString;
}
t1.text = getRandomText();
t2.text = getRandomText();
t3.text = getRandomText();
当然,这将通过删除显示的字符串来修改数组。因此,如果您需要保留阵列以备将来使用,则需要复制该数组并使用副本
答案 1 :(得分:1)
在我看来,你可以使用这种功能。 这是快速完成但我认为避免每次在do while循环中检查(无用且较慢)。 因此,您可以根据需要轻松更改代码...
var choices:Vector.<String> = new <String>["A","B","C","D","E","F"];
var randomChoices:Vector.<String> = new Vector.<String>();
var choicesBackup:Vector.<String>;
function populateLetters():void{
var n: uint = Math.floor(Math.random()*choices.length);
randomChoices.push(choices[n]);
choices.splice(n,1);
}
function getDifferentLetters():Vector.<String>{
choicesBackup = choices.slice();
randomChoices = new Vector.<String>();
for(var i:uint=choices.length; i>0; i--){
populateLetters();
}
choices = choicesBackup.slice();
return randomChoices;
}
trace ("letters = " + choices + ", flush = " + getDifferentLetters());
// output : letters = A,B,C,D,E,F, flush = D,E,B,C,F,A
答案 2 :(得分:0)
如果我错过了什么,请告诉我!
T1.text = getDifferentLetters();
...等 示例:
var t1:TextField = new TextField();
addChild(t1);
t1.text = getDifferentLetters().toString();
t1.x = 100;
t1.y = 100;
var t2:TextField = new TextField();
addChild(t2);
t2.text = getDifferentLetters().toString();
t2.x = 100;
t2.y = 150;
var t3:TextField = new TextField();
addChild(t3);
t3.text = getDifferentLetters().toString();
t3.x = 100;
t3.y = 200;
如果您对变量T1有引用,这应该有效。 在您的代码中,尝试使用“Lowercase”作为变量和方法。 对于类的第一个字母,“大写”,如果使用常量,则全部以“大写”。
如果您只在数组中使用字符串,请使用Vector。&lt; String&gt;而不是数组!
trace只是一个在输出中得到结果的例子。 最好的祝福。 尼古拉斯。