Просмотр полной версии : Как выстроить картинки по сетке?
khorokhorya
06.10.2007, 23:42
Eсть код :
images // количество картинок
spacing // ширина картинки +расстояние между картинками
/////////////////////////////////////////
for (i=0; i<images; i++) {
//создаём в мувке thumbnails пустой мувиклип
this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
// его координата по x равна текущему images умноженному на spacing
this.thumbHolder._x = i*spacing
Вопрос, как, перебирая все images , выстроить их НЕ в ширенгу, а в сетку, 5X5 например, в ячейках которой imades, если картинки квадратные?
DarkLight
06.10.2007, 23:59
Собственно, сделать вложенный цикл, и по нему считать _x, а внешний цикл будет менять _y
khorokhorya
07.10.2007, 00:03
а уменя что то не получается со вложенным циклом((( есть какие нить примеры?
DarkLight
07.10.2007, 00:08
//Строим квадрат images на images размером
for (i=0; i<images; i++) {
//создаём в мувке thumbnails пустой мувиклип
for (var j=0;j<images; j++) {
this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i+"_"+j, thumbnails.getNextHighestDepth());
this.thumbHolder._x = j*spacing;
this.thumbHolder._y = i*spacing;
}
}
khorokhorya
07.10.2007, 00:16
а если мне нужно квадрат 5x5? как же у меня получится квадрат images на images , если images , это всё , что есть, получится ширенга....
DarkLight
07.10.2007, 00:24
ну я для примера...если надо считать прямо сторону из общего количества, то надо писать что-нибудь вроде i<Math.round(Math.sqrt(images)) и т п
khorokhorya
07.10.2007, 00:57
у меня получилось вот таким способом, правда если работ меньше , он пишет в окно аутпут , что не нашёл остальные работы, как интересно теперь остановить этот цикл, если i достигнет images?
i = 0;
// проходим циклом по массиву
for (k=0; k<5; k++) {
for (h=0; h<5; h++) {
//создаём в мувке thumbnails пустой мувиклип с названием thumbnail и глубиной
this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
// его координата по x и y
this.thumbHolder._x = h*spacing;
this.thumbHolder._y = k*spacing;
i++;
}
}
DarkLight
07.10.2007, 01:03
i = 0;
flag = false;
// проходим циклом по массиву
for (k=0; k<5; k++) {
if(flag){
break;
}
for (h=0; h<5; h++) {
//создаём в мувке thumbnails пустой мувиклип с названием thumbnail и глубиной
this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
// его координата по x и y
this.thumbHolder._x = h*spacing;
this.thumbHolder._y = k*spacing;
i++;
if(i == images){
flag = true;
break;
}
}
}
Посмотри внимательно начиная с 12 строчки.
Собственно, вот:
mc._x = (i % numX )*stepX;
mc._y = Math.floor( i / numX) * stepY;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.