String AS3中的随机字符串
我最近在AS3项目中使用了一个模块,其工作原理如下: 我有50个字符串,我在给定的时间随机挑选其中一个。当我完成挑选的一个,我选择另一个剩下的49再次随机等等 我设法使用助手数组解决了这个问题,对于循环,使用字符串映射索引号。虽然每件事都很好,但我发现我的代码非常混乱,很难理解 在AS3中有没有更简单更干净的方法来解决这个问题String AS3中的随机字符串,string,actionscript-3,random,code-cleanup,String,Actionscript 3,Random,Code Cleanup,我最近在AS3项目中使用了一个模块,其工作原理如下: 我有50个字符串,我在给定的时间随机挑选其中一个。当我完成挑选的一个,我选择另一个剩下的49再次随机等等 我设法使用助手数组解决了这个问题,对于循环,使用字符串映射索引号。虽然每件事都很好,但我发现我的代码非常混乱,很难理解 在AS3中有没有更简单更干净的方法来解决这个问题 也许有一个从字符串中提取随机字符串的库?我不确定您想用这个过程做什么,但这里有一个建议: var stringArray:Array = new Array("strin
也许有一个从字符串中提取随机字符串的库?我不确定您想用这个过程做什么,但这里有一个建议:
var stringArray:Array = new Array("string1", "string2", "string2"); //your array with strings
var xlen:uint = stringArray.length-1; //we get number of iterations
for (var x:int = xlen; x >= 0; x--){ //we iterate backwards
var randomKey:Number = Math.floor(Math.random()*stringArray.length); //gives you whole numbers from 0 to (number of items in array - 1)
stringArray.splice(randomKey,1); //remove item from array with randomKey index key
var str:String = stringArray[randomKey]; //output item into new string variable or do whatever
}
我不确定你想用这个程序做什么,但这里有一个建议:
var stringArray:Array = new Array("string1", "string2", "string2"); //your array with strings
var xlen:uint = stringArray.length-1; //we get number of iterations
for (var x:int = xlen; x >= 0; x--){ //we iterate backwards
var randomKey:Number = Math.floor(Math.random()*stringArray.length); //gives you whole numbers from 0 to (number of items in array - 1)
stringArray.splice(randomKey,1); //remove item from array with randomKey index key
var str:String = stringArray[randomKey]; //output item into new string variable or do whatever
}
像这样简单的课程:
public class StringList
{
private var _items:Array = [];
public function StringList(items:Array)
{
_items = items.slice();
}
public function get random():String
{
var index:int = Math.random() * _items.length;
return _items.splice(index, 1);
}
public function get remaining():int{ return _items.length; }
}
及其用法:
var list:StringList = new StringList(['a', 'b', 'c', 'd']);
while(list.remaining > 0)
{
trace(list.random);
}
像这样简单的课程:
public class StringList
{
private var _items:Array = [];
public function StringList(items:Array)
{
_items = items.slice();
}
public function get random():String
{
var index:int = Math.random() * _items.length;
return _items.splice(index, 1);
}
public function get remaining():int{ return _items.length; }
}
及其用法:
var list:StringList = new StringList(['a', 'b', 'c', 'd']);
while(list.remaining > 0)
{
trace(list.random);
}
您还可以使用Random randomNum=new Random();randomNum.next(n);//给出随机数[0,n)对不起,这是Java。这个:函数randomNumber(min:number,max:number):number{//good return Math.floor(Math.random()*(1+max-min)+min);}@Vlad这是C#……问题是关于AS3的?你也可以使用random randomNum=new random();randomNum.next(n);//给出随机数[0,n)抱歉,这是Java。这个:函数randomNumber(min:Number,max:Number):Number{//good return Math.floor(Math.random()*(1+max-min)+min);}@Vlad这是C#……问题是关于AS3的?