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

DrugON 30.11.2008 19:56

Схема развертки матрицы клипов по строкам
 
Вложений: 1
Мне нужно чтобы мои превьюшки строились по следующей схеме

Вложение 20962

загружается первая строка клипов, затем переходим на следующую строку, после второй строки создается еще контейнер с правой стороны от первого, где уже созданы две строки и также строится второй контейнер.
не могу понять как сместить второй контейнер клипов, если меняю addedWidth = 0; на addedWidth = widthLimit + spacing; то смещается только первая строка, а вторая строится в цикле снова с нулевым параметром.
Код:

function arrangeThumbs()
{
    myClips = currentThumbField.myClips;
    lineCounter = 1;
    ySpace = 100;
        spacing = 3;
        addedWidth = 0;
    widthLimit = 300;
    for (i = 0; i < myClips.length; i++)
    {
        myClip = myClips[i];
                if (addedWidth + myClip._width + spacing > widthLimit)
        {
            myLineClips = new Array();
            ++lineCounter;
            addedWidth = 0;
                }
                if(lineCounter > 2)
                {
                        addedWidth = 0;
                        lineCounter = 0;
                        ++lineCounter;
                }
                myClip._x = addedWidth;
        myClip._y = (lineCounter - 1) * ySpace;
        addedWidth = addedWidth + (myClip._width + spacing);
    }
}


DarkLight 30.11.2008 20:16

Пусть h - высота строки, w_num - количество превьюшек в строке, spacing - расстояние между строками, w_1 - ширина одной превью

Тогда:
Код AS1/AS2:

  for (i = 0; i < myClips.length; i++){
        myClip = myClips[i];
        myClip._x = (i%w_num)*w_1;
        myClip._y = Math.floor(i/w_num)*(h+spacing);
  }


DrugON 30.11.2008 22:31

а дальше то как?
четыре строчки создалось, а мне нужно чтобы две было в одном контейнере, а две в другом и так далее в зависимости сколько строчек создалось

DrugON 08.12.2008 16:03

Есть еще мысли по моему вопросу?

Mnilionic 08.12.2008 19:04

Код AS1/AS2:

var tr = 3, td = 5;
var w = myClips[0]._width, h = myClips[0]._height;
var space = 200; // расстояние от первой колонки одного блока до первой колонки следующего блока
var x = 0, y = 0, coll = 0;
 
for( var i = 0; i < myClips.length; i++){
        var mc = myClips[i];
 
        if( x%td == 0 && x != 0){ y++; x = 0;}
        if( y%tr == 0 && y != 0){ y = 0 ; coll++;}
 
        mc._x =  x++ * w + space * coll;
        mc._y = y * h;
}



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

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