Цитата:
|
Сообщение от andr64
маленькое замечание:
num = Math.floor(Math.random()*totalFrames)+1
наверное правильние будет так
num = Math.round(Math.random()*(totalFrames-1))+1
|
Вы не правы, в вашем варианте вероятность генерации первого и последнего фрейма ниже, чем остальных. Проверьте сами:

Код:
var _totalFrames:int = 10;
var hash:Array = new Array();
var i:int, num:int;
// Первый вариант
// Обнуляем массив
for (i=1; i<=_totalFrames; i++) hash[i]=0;
// Собираем статистику
for (i=0; i<1000000; i++) {
num = Math.floor(Math.random()*_totalFrames)+1;
hash[num]++;
}
// Результат
trace("Result 1:");
for (i=1; i<=_totalFrames; i++) {
trace(i+" = "+Math.round(hash[i]/1000000*100)+"%");
}
// Второй вариант
// Обнуляем массив
for (i=1; i<=_totalFrames; i++) hash[i]=0;
// Собираем статистику
for (i=0; i<1000000; i++) {
num = Math.round(Math.random()*(_totalFrames-1))+1;
hash[num]++;
}
// Результат
trace("Result 2:");
for (i=1; i<=_totalFrames; i++) {
trace(i+" = "+Math.round(hash[i]/1000000*100)+"%");
}