Vectorクラスのシャッフル

自分用のメモ。

参考元
http://www.bonth.nl/2010/07/25/as3-vector-shuffle-or-randomize/

上の参考例だと配列の長さをランダムで決めるときにレンジエラーがでてしまうので

汎用的ではありませんが下の様に改変
※下の例でTweetFormatクラスになっている部分をシャッフルしたいクラスで置き換えるとOK


public function shuffleVector(vec:Vector.<TweetFormat>):void{
	if (vec.length > 1){
		var i:int = vec.length - 1;
		while (i > 0) {
			var s:Number = Math.round(Math.random()*(vec.length)+0.5)-1;
			var temp:TweetFormat = vec[s];
			vec[s] = vec[i];
			vec[i] = temp;
			i--;
		}
	}
}

  1. コメントはまだありません。

  1. トラックバックはまだありません。