Форум 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=142271)

rainbowrussia 16.07.2010 18:51

Код AS1/AS2:

 
var bwidth = 50; // ширина блока
var bheight = 50; // высота блока
var alen = 26; // длинна массива, заменить на имя_массива.length
var cols = 5; // фиксируем число колонок
var rows = alen/cols; // вычисляем число строк
if (rows != Math.floor(rows)) { rows++; }
rows = Math.floor(rows);
 
for (j=0; j<rows; j++) { // цикл по строкам
        for (i=0; i<cols; i++) { // цикл по колонкам
                var aridx = j*cols + i; // вычисляем номер элемента массива
                if (aridx < alen) { // если элемент укладывается в массив - изображаем его
                        var xcoord = i * bwidth; // в таких-то координатах
                        var ycoord = j * bheight;
                        trace(aridx + ':' + xcoord + ':' + ycoord);
                }
        }
}


etc 16.07.2010 18:52

Цитата:

Сообщение от in4core (Сообщение 922866)
etc как ?

Один цикл, два инкремента, один сбрасывается по достижению конца строки.

in4core 16.07.2010 18:52

Блин, а теперь почему то отступов нету между клипами!


Код AS1/AS2:

mc._x = tileWidth * j+20 ;
                mc._y = mcY+20;

И все равно они слипаются.!!!

rainbowrussia 16.07.2010 18:54

Вариант с одним циклом
Код AS1/AS2:

var bwidth = 50; // ширина блока
var bheight = 50; // высота блока
var alen = 26; // длинна массива, заменить на имя_массива.length
var cols = 5; // фиксируем число колонок
 
for (idx=0; idx<alen; idx++) {
        var row = Math.floor(idx/cols);
        var xcoord = (idx - row*cols) * bwidth;
        var ycoord = row * bheight;
        trace(idx + ':' + xcoord + ':' + ycoord);
}


udaaff 16.07.2010 18:57

Цитата:

И все равно они слипаются.!!!
К ширине и высоте 20 нужно прибавлять.

in4core 16.07.2010 18:58

спасибо

Добавлено через 47 секунд
ребятушки всем спасибо! оч полезная инфа


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

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