Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.11.2008, 19:56
DrugON вне форума Посмотреть профиль Отправить личное сообщение для DrugON Найти все сообщения от DrugON
  № 1  
Ответить с цитированием
DrugON
 
Аватар для DrugON

Регистрация: Mar 2007
Сообщений: 46
По умолчанию Схема развертки матрицы клипов по строкам

Мне нужно чтобы мои превьюшки строились по следующей схеме

Название: sxema.JPG
Просмотров: 334

Размер: 10.4 Кб

загружается первая строка клипов, затем переходим на следующую строку, после второй строки создается еще контейнер с правой стороны от первого, где уже созданы две строки и также строится второй контейнер.
не могу понять как сместить второй контейнер клипов, если меняю 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);
    }
}

Старый 30.11.2008, 20:16
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Пусть 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);
   }
__________________
4am is time to rock

Старый 30.11.2008, 22:31
DrugON вне форума Посмотреть профиль Отправить личное сообщение для DrugON Найти все сообщения от DrugON
  № 3  
Ответить с цитированием
DrugON
 
Аватар для DrugON

Регистрация: Mar 2007
Сообщений: 46
а дальше то как?
четыре строчки создалось, а мне нужно чтобы две было в одном контейнере, а две в другом и так далее в зависимости сколько строчек создалось


Последний раз редактировалось DrugON; 08.12.2008 в 16:02.
Старый 08.12.2008, 16:03
DrugON вне форума Посмотреть профиль Отправить личное сообщение для DrugON Найти все сообщения от DrugON
  № 4  
Ответить с цитированием
DrugON
 
Аватар для DrugON

Регистрация: Mar 2007
Сообщений: 46
Есть еще мысли по моему вопросу?

Старый 08.12.2008, 19:04
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 5  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Код 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;
}


Последний раз редактировалось Mnilionic; 08.12.2008 в 19:15.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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