Показать сообщение отдельно
Старый 20.02.2009, 12:44
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 1  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
По умолчанию Некорректное расположение кнопок(

Задача такова, грузим из хлм данные в массивы, и соответственно для каждого значения аттачим кнупки. Значения распологаются в 2 столбца, в первом все располагается по порядку, во втором порядок расположения перемешен (использовал рандомные неповторяющиеся значения). проблема в том что порядок рандомного расположения несовпадает вообщем то с теми переменными которые получаем рандомно, может обьяснит кто нибудь в чем у меня косяк. Вот пример кода:
Код AS1/AS2:
var rand:Array = [];                            // массив для случайных чисел
var i:Number = 0;
var random_:Number;                                 // переменная случайного значения, такое чувство что можно все сделать проще...%)
 
function myRandNumber(min:Number, max:Number):Number    // функция рандомного числа в промежутке
{
var randomNumb:Number = Math.round(Math.random() * (max - min)) + min;
return randomNumb;
}
 
function getRandomIntArray(len:Number):Array // это взято тут и немного переделано, получаем массив случайных неповторяющихся чисел в заданном промежутке
{
	var A:Array = [];
	var found:Boolean = false;
	var un:Number;
 
	while (A.length != len) 
	{
		un = myRandNumber(1, len); // от единицы до какого то значения
		found = false;
		for (var i = 0; i < A.length; i++) 
		{
			if (A[i] == un) 
			{
			  found = true;
			  break;
			}
		}
		 if (!found) A.push(un);
	}
	return A;
}
 
rand = getRandomIntArray(10);  // собсна получаем сам массив
 
for (i = 0; i < total; i++) // аттачим кнупки и вообщем делаем что нам надо
{
	random_ = rand[i];// получаем случайное значение из массива
var eng_form = _root.attachMovie("eng_form", "eng_form" + i, i);
	eng_form._x = 0;
	eng_form._y = (eng_form._height + 10) * i;        // ставим по порядку
	var rus_form = _root.attachMovie("rus_form", "rus_form" + i, total + i);
	rus_form._x = eng_form._width;//rus_form._width;
	trace("i - " + i + " ------------- rand -" + random_)	// смотрим что выдает трейс	
	rus_form._y = (rus_form._height + 10) * (random_ - 1);//(rus_form._height + 10) * (random_); // разбрасываем ;)
// и тут порядок не такой как порядок полученных значений(
// высота и ширина в аттаченых мувиков одинаковая
}
или все же выложить исходник?
Нарпимер рандомно получаем 1,3,4,7,2,6,8,5,10,9 , последовательность расположения во втором столбце не такая( но если заменить random_ на i то все ок.
З.Ы. может есть способ попроще получать рандомные значения, кроме как воодить доп массив и потом в цикле брать из него значения?


Последний раз редактировалось nOobCrafter; 20.02.2009 в 12:48.