Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Некорректное расположение кнопок( (http://www.flasher.ru/forum/showthread.php?t=121678)

nOobCrafter 20.02.2009 12:44

Некорректное расположение кнопок(
 
Задача такова, грузим из хлм данные в массивы, и соответственно для каждого значения аттачим кнупки. Значения распологаются в 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 то все ок.
З.Ы. может есть способ попроще получать рандомные значения, кроме как воодить доп массив и потом в цикле брать из него значения?


Часовой пояс GMT +4, время: 14:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.