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

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

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

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
По умолчанию Почему не работает цикл?

Вернее цикл работает, но призводит действия только в конце. не знаю как объяснить

Код AS1/AS2:
j=1
while (++j <> 5) {
	duplicateMovieClip(skill1, "skill"+(j+1), j);
	_root["skill"+(j+1)]._x = 38*j+skill1._x;
	_root["skill"+(j+1)]._y = fixY;
}
В итоге появляется только MC с именем skill5, то есть последний. MC skill2, skill3 и skill4 отсутствуют. Ставил trace(j) выводил всё от 2 до 4, но всё равно не дублирует


Последний раз редактировалось Dalass13; 23.10.2010 в 21:31.
Старый 23.10.2010, 21:32
Elidan вне форума Посмотреть профиль Отправить личное сообщение для Elidan Найти все сообщения от Elidan
  № 2  
Ответить с цитированием
Elidan

Регистрация: Aug 2009
Сообщений: 40
Код AS1/AS2:
j=1
while (++j <= 5) {
	duplicateMovieClip(skill1, "skill"+(j+1), j);
	_root["skill"+(j+1)]._x = 38*j+skill1._x;
	_root["skill"+(j+1)]._y = fixY;
}
а лучше так:
Код AS1/AS2:
for(j = 1; j <= 5; j++){
	duplicateMovieClip(skill1, "skill"+(j+1), j);
	_root["skill"+(j+1)]._x = 38*j+skill1._x;
	_root["skill"+(j+1)]._y = fixY;
}

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

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
появился MC skill6... больше ничего. trace(j) всё так же выдает всё верно

Старый 23.10.2010, 21:35
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Должно дублировать.
Хотя, что такое skill1?

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

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
но не дублирует, сам не могу понять почему

skill1 это MС, незнаю как еще ответить на этот вопрос)

Старый 23.10.2010, 21:42
Dalass13 вне форума Посмотреть профиль Отправить личное сообщение для Dalass13 Найти все сообщения от Dalass13
  № 6  
Ответить с цитированием
Dalass13
 
Аватар для Dalass13

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
Название: Новый точечный рисунок.jpg
Просмотров: 344

Размер: 12.3 Кб

вот что выходит

Старый 23.10.2010, 22:55
ДядяВова вне форума Посмотреть профиль Отправить личное сообщение для ДядяВова Найти все сообщения от ДядяВова
  № 7  
Ответить с цитированием
ДядяВова

Регистрация: Aug 2010
Сообщений: 19
Код AS1/AS2:
duplicateMovieClip(skill1, "skill"+(j+1), j);


Код AS1/AS2:
duplicateMovieClip(skill1, "skill"+j, j);

Старый 23.10.2010, 23:02
Dalass13 вне форума Посмотреть профиль Отправить личное сообщение для Dalass13 Найти все сообщения от Dalass13
  № 8  
Ответить с цитированием
Dalass13
 
Аватар для Dalass13

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
черт заработало.... хотите сказать что flash не может понять выражение в скобках? -____-

правда мне именно j+1 нужно было, ну да ладно) спасибо дядя Вова

кстати еще в квадратных скобках заработало тоже) извиняюсь что отнял время на такой пустяк, как сам до этого не дошел блин?


ВСЁ в общем я нашел ответы на все вопросы, спасибо за помощь.
вот код, если кому то понадобится что-нибудь типа такого

Код AS1/AS2:
fixY = 118;
k = 1;
for (i=1; i<=11; i++) {
	for (j=1; j<=5; j++) {
		k += 1;
		trace(k);
		duplicateMovieClip(skill1, "skill"+k, k);
		_root["skill"+k]._x = 38*j+skill1._x-38;
		_root["skill"+k]._y = fixY;
	}
	fixY += 38;
}


Последний раз редактировалось Dalass13; 23.10.2010 в 23:22.
Старый 24.10.2010, 16:08
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 9  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
можно не дублировать, а из библиотеки дёргать по id 'skill'
Код AS1/AS2:
var rows = 11, cols = 5; // строки и столбцы
var x0 = 50, y0 = 50; // координаты сетки
var w = 40, h = 40; // размеры ячейки
var index = 1, i = 1, j = 1; // счётчики
do{
	if (i > cols) j++, i = 1; // переходим на следующую строку
	var mc = _root.attachMovie('skill', 'skill_' + index, index);
	mc._x = x0 + w * i;
	mc._y = y0 + h * j;
	index++, i++;
}while( index <= cols * rows)

Старый 24.10.2010, 17:16
Dalass13 вне форума Посмотреть профиль Отправить личное сообщение для Dalass13 Найти все сообщения от Dalass13
  № 10  
Ответить с цитированием
Dalass13
 
Аватар для Dalass13

Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
хм, отличное решение. не думал о таком если честно

правда сути особо не меняет)

дублирование чем-то хуже в этом плане?


Последний раз редактировалось Dalass13; 24.10.2010 в 17:23.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
проблема , цикл

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

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


 


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


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