Array.Shuffle
2007年04月10日 22:27
PHP だと shuffle 関数であっさり Array をシャッフルしてくれるけど、Flash は別。
かなり基本的な内容だけど、class で使い回し MovieClip を上手く操作すれば表現面に重宝できるので記述。
shuffleArray class
class shuffleArray {
private var _origLen:Number;
private var _origArr:Array;
public function shuffleArray() {
}
public function setArray(arr:Array):Void {
this._origLen = arr.length;
this._origArr = arr;
}
public function getArray():Array {
var newArr:Array = new Array();
for(var i:Number = 0; i < this._origLen; i++) {
var ranNum:Number = Math.floor(Math.random() * this._origArr.length);
newArr[i] = this._origArr.splice(ranNum, 1);
}
return newArr;
}
}
Flash 内で使用する場合
var shuffleArray:shuffleArray = new shuffleArray();
var sampleArray:Array = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
shuffleArray.setArray(sampleArray);
sampleArray = shuffleArray.getArray();
