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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2007, 00:56
sxstudio вне форума Посмотреть профиль Отправить личное сообщение для sxstudio Найти все сообщения от sxstudio
  № 1  
Ответить с цитированием
sxstudio
[+ 1.1 06.03.2006]
 
Аватар для sxstudio

Регистрация: Sep 2005
Адрес: Москва
Сообщений: 251
Question Помогите с формулой для расстановки превьюх на сцене

Ну обломал голову - ничего не могу поделать с собой. Смысл такой, есть цикл for от 1 до 12 с шагом 1. каждый цикл создает эмптимуви и кладет туда картинку из лоадмуви.Вообщем ничего слоджного. но также в цикле выставляю координаты этим мувикам с картинками. нужно чтобы было 3 ряда картинок по 4 картинки в каждом ряду.
Методом научного подбора подобрал вот такую формулу:

Код:
	for (i; i<=12; i++) {
		var mc = this.attachMovie("picture", "p"+i, i, {num:i});
		mc._x = (i%4*159)+100; // 159 это просто коэфиент -длина картинки + 100 смещение от края
		mc._y = Math.ceil(i/4)*105; // это вроде верно
	}


Это полностью рабочий код, но в этом варианте он кладет 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 во втором ряду тже самое...
Ошибка в красном.

Если кто догадался намекните - спасибо заранее
__________________
Старатель и будущий миллионер(R)


Последний раз редактировалось sxstudio; 02.04.2007 в 01:01.
Старый 02.04.2007, 01:04
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Рассуждаем логически:
i = 0, следовательно остаток 0, т.е. _x = 100;
i = 1 — 1
i = 2 — 2

i = 4 — 0
i = 5 — 1

i = 12 — 0
Здеь вроде нормально.
Чего получить-то хотели? У вас начальное значение i вообще не задано.

Старый 02.04.2007, 01:15
sxstudio вне форума Посмотреть профиль Отправить личное сообщение для sxstudio Найти все сообщения от sxstudio
  № 3  
Ответить с цитированием
sxstudio
[+ 1.1 06.03.2006]
 
Аватар для sxstudio

Регистрация: Sep 2005
Адрес: Москва
Сообщений: 251
начальное ессно = 1. это все понятно.. я же говорю в целом все работает. единственное что смущает - это последовательность загрузки.
к примеру в такой фомуле как у меня сначала загружается вторая слева картника в первом ряду потом третья слева потом 4, а только потом первая в этом ряду. и так с каждым рядом и это не удивительно т.к. по номеру первая картинка на самом деле является 4 ой. хочу чтоб последовательность была русской - тоесть слева направо четко и последовательно.. грубо говоря все тодже самое но только чтоб все по очереди они грузились
__________________
Старатель и будущий миллионер(R)

Старый 02.04.2007, 01:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Потому что цикл единовременен, браузер за раз получает команду загрузки 12-ти картинок. А в каком порядке на самом деле они будут грузиться — как повезет. В вашем случае нужно отказаться от цикла и грузить картинки последовательно — сразу после загрузки одной, грузить следующую по порядку, пока картинки вообще есть.

Старый 02.04.2007, 01:28
sxstudio вне форума Посмотреть профиль Отправить личное сообщение для sxstudio Найти все сообщения от sxstudio
  № 5  
Ответить с цитированием
sxstudio
[+ 1.1 06.03.2006]
 
Аватар для sxstudio

Регистрация: Sep 2005
Адрес: Москва
Сообщений: 251
нет, опять не поняли вы меня. с этим тоже все впорядке.. тут создан холдер класс и в цикле ссылка на функцию, которая при успешной и полной загрузке одной картинки инициализирует загрузку второй под следующим номером. так первая успешно загруженная картинка инициализирует загрузку второй.. суть не в этом, повторюсь. механизм инициализации отточен. картинки грузятся не хаотично а по порядку. смысл в формуле.
__________________
Старатель и будущий миллионер(R)

Старый 02.04.2007, 01:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ошибка не в i%4, а в Math.ceil(i/4)*105;
i = 0 — 0
i = 1 — 1

i = 5 — 2
Math.ceil округляет до следующего целого.
Вам нужно использовать вложенный цикл.

Старый 02.04.2007, 01:48
sxstudio вне форума Посмотреть профиль Отправить личное сообщение для sxstudio Найти все сообщения от sxstudio
  № 7  
Ответить с цитированием
sxstudio
[+ 1.1 06.03.2006]
 
Аватар для sxstudio

Регистрация: Sep 2005
Адрес: Москва
Сообщений: 251
ну так с _y же все верно он работает исправно разбивая по 4 фотки в 3 ряда. цикл в цикле о чем речь, поясните плз.
__________________
Старатель и будущий миллионер(R)

Старый 02.04.2007, 01:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну так i же от единицы начинается, значит первый клип будет во втором столбике первого ряда! (1%4 равен единице, т.е. _x = 259, а _y равен 105)

Требуемое получается вот так:

Код:
for (i=0; i<12; i++) {
	var mc = this.attachMovie("picture", "p"+i, i, {num:i});
	mc._x = ((i%4)*159)+100;
	mc._y = Math.floor(i/4)*105;
}

Старый 03.04.2007, 01:46
sxstudio вне форума Посмотреть профиль Отправить личное сообщение для sxstudio Найти все сообщения от sxstudio
  № 9  
Ответить с цитированием
sxstudio
[+ 1.1 06.03.2006]
 
Аватар для sxstudio

Регистрация: Sep 2005
Адрес: Москва
Сообщений: 251
Ваш код не верен т.к. в хмл из нодов которого грузятся картинки нет нулевого нода, а следовательно нет нулевой картинки..

Вашел из положения ужасно, но вот так.

Код:
var i = 1;
	for (i; i<=12; i++) {
		var mc = this.attachMovie("picture", "p"+i, i, {num:i});
		if ((i%4) == 0) {
			mc._x = 577;
		} else if ((i%4) == 1) {
			mc._x = 100;
		} else if ((i%4) == 2) {
			mc._x = 259;
		} else {
			mc._x = 418;
		}
		
		mc._y = Math.ceil(i/4)*105;
		
	}
__________________
Старатель и будущий миллионер(R)

Старый 03.04.2007, 01:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от sxstudio
Ваш код не верен т.к. в хмл из нодов которого грузятся картинки нет нулевого нода, а следовательно нет нулевой картинки..[/code]
Это скорее ваш XML неверен. Если вывести числа, соответствующие номеру мувика, то все нормально, от 0 и вперед. И ничего не мешает прибавить единичку в нужных местах.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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