![]() |
Помогите с формулой для расстановки превьюх на сцене
Ну обломал голову - ничего не могу поделать с собой. Смысл такой, есть цикл for от 1 до 12 с шагом 1. каждый цикл создает эмптимуви и кладет туда картинку из лоадмуви.Вообщем ничего слоджного. но также в цикле выставляю координаты этим мувикам с картинками. нужно чтобы было 3 ряда картинок по 4 картинки в каждом ряду.
Методом научного подбора подобрал вот такую формулу: Код:
for (i; i<=12; i++) {Это полностью рабочий код, но в этом варианте он кладет 4 ую по номеру картинку в первый ряд на первую позицию с левого края, что неверно, в каждом ряду ситуация такая же. И это неудивительно т.к. trace выдает (i=1%4 =====>1 | i=2%4 =====>2 | i=3%4 =====>3 | i=4%4 =====>0) нужно чтоб соответственно при i=1 координаты были 0, при 2 - 1*159, при 3 - 2*159 и при 4 - 3*150 во втором ряду тже самое... Ошибка в красном. Если кто догадался намекните - спасибо заранее |
Рассуждаем логически:
i = 0, следовательно остаток 0, т.е. _x = 100; i = 1 — 1 i = 2 — 2 … i = 4 — 0 i = 5 — 1 … i = 12 — 0 Здеь вроде нормально. Чего получить-то хотели? У вас начальное значение i вообще не задано. |
начальное ессно = 1. это все понятно.. я же говорю в целом все работает. единственное что смущает - это последовательность загрузки.
к примеру в такой фомуле как у меня сначала загружается вторая слева картника в первом ряду потом третья слева потом 4, а только потом первая в этом ряду. и так с каждым рядом и это не удивительно т.к. по номеру первая картинка на самом деле является 4 ой. хочу чтоб последовательность была русской - тоесть слева направо четко и последовательно.. грубо говоря все тодже самое но только чтоб все по очереди они грузились |
Потому что цикл единовременен, браузер за раз получает команду загрузки 12-ти картинок. А в каком порядке на самом деле они будут грузиться — как повезет. В вашем случае нужно отказаться от цикла и грузить картинки последовательно — сразу после загрузки одной, грузить следующую по порядку, пока картинки вообще есть.
|
нет, опять не поняли вы меня. с этим тоже все впорядке.. тут создан холдер класс и в цикле ссылка на функцию, которая при успешной и полной загрузке одной картинки инициализирует загрузку второй под следующим номером. так первая успешно загруженная картинка инициализирует загрузку второй.. суть не в этом, повторюсь. механизм инициализации отточен. картинки грузятся не хаотично а по порядку. смысл в формуле.
|
Ошибка не в i%4, а в Math.ceil(i/4)*105;
i = 0 — 0 i = 1 — 1 … i = 5 — 2 Math.ceil округляет до следующего целого. Вам нужно использовать вложенный цикл. |
ну так с _y же все верно он работает исправно разбивая по 4 фотки в 3 ряда. цикл в цикле о чем речь, поясните плз.
|
Ну так i же от единицы начинается, значит первый клип будет во втором столбике первого ряда! (1%4 равен единице, т.е. _x = 259, а _y равен 105)
Требуемое получается вот так: Код:
for (i=0; i<12; i++) { |
Ваш код не верен т.к. в хмл из нодов которого грузятся картинки нет нулевого нода, а следовательно нет нулевой картинки..
Вашел из положения ужасно, но вот так. Код:
var i = 1; |
Цитата:
|
| Часовой пояс GMT +4, время: 04:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.