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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.09.2010, 01:34
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию addChild снова проблемы с логикой цикла

Код AS3:
var sp:Sprite = new Sprite();
			addChild(sp);
 
			var sh:Shape = new Shape();
			sh.graphics.beginFill(0xFFFFFF);
			sh.graphics.drawRect(0,0,20,20);
			sh.graphics.endFill();
 
			sp.addChild(sh);
 
			var sh1:Shape = new Shape();
			sh1.graphics.beginFill(0x000000);
			sh1.graphics.drawRect(0,0,20,20);
			sh1.graphics.endFill();
			sh1.x = sh1.y = 20;
			sp.addChild(sh1);
 
			/*for (var i = 0; i< wi; i++) {
				for (var j=0; j< he; j++) {
				      ... // что то сдесь чтобы продублировать наш первый самый sp 
					addChild(); // а внутри что то типа sp+i+j
 
				}
			}*/
Вот такой вопрос, суть в комментах. нужно продубоировать в цикле sp

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Все что у вас до цикла, перенесите в цикл.
Цитата:
а внутри что то типа sp+i+j
Числа с объектами не складываются только как строка.
Если нужно сохранить ссылки на множество объектов сложите их в массив.
Код AS3:
var objects:Array = [];
var sp:Sprite = new Sprite();
objects.push(sp);


Последний раз редактировалось alatar; 06.09.2010 в 02:11.
Старый 06.09.2010, 02:40
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Не то вы сказали) ну перенису в цикл и что? как от i и j плясать то?))) ссылки не нужны

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
куда вам надо от них плясать?

Добавлено через 3 минуты
Цитата:
ну перенису в цикл и что?
а то что таким образом вы создадите i*j объектов и таким образом добъетесь
Цитата:
что то сдесь чтобы продублировать наш первый самый sp

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

Регистрация: Mar 2009
Сообщений: 207
Все он правильно говорит.
Один раз создав объект, в список отображения его можно записать несколько раз, а по сему из начала вашего кода addChild(sp) убирайте и
Код AS3:
for (var i = 0; i< wi; i++) {
for (var j=0; j< he; j++) {
sp.x = i;
sp.y = j;
addChild(sp);
}
}
Это с учетом размещения в различных координатах, а так и надо будет, я думаю

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

Регистрация: Jun 2009
Сообщений: 461
Ничего подобного, нужно обязательно создавать экземпляр класса в цикле, если вы хотите i*j копий своих циклов.

А с i,j связать просто, только зависит от того как вы хотите расположить эти объекты. Например если вам нужна матрица[i][j], то надо так:
Код AS3:
var XPos:int=0;
var YPos:int=0;
 
for (var i = 0; i< wi; i++) {
for (var j=0; j< he; j++) {
 
sp=new Sprite();
//Сюда надо вставить все что вы хотите вставить в спрайт (Shape'ы)
sp.x = XPos;
sp.y = YPos;
addChild(sp);
 
XPos+=sp.width; //тут надо все время прибавлять ширину вашего спрайта, Если
                       //фиксирована, то можете вписать число.
}
YPos+=sp.height;//Тут после заполнения строки мы переходим на новую строку.
                       //Также может быть числом.
XPos=0;//А это мы переходим в начало координат по столбцам.
}

Старый 06.09.2010, 10:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от alatar Посмотреть сообщение
Все что у вас до цикла, перенесите в цикл.
Не обязательно. В 10-ом плеере у Graphics появился метод copyFrom, который:
Цитата:
Копирует все команды рисования исходного объекта Graphics в вызывающий объект Graphics.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Или если таки матрицу то i-рядов, j-столбцов

Код AS3:
for(var i=0;i<5;i++){
	for(var j=0;j<10;j++){
		var clip:Clip=new Clip();
		clip.x=clip.width*j;
		clip.y=clip.height*i;
		addChild(clip)
	}
}

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от iNils Посмотреть сообщение
Не обязательно. В 10-ом плеере у Graphics появился метод copyFrom, который:
Так он сможет скопировать те два шейпа, которые у него в спрайте. Спрайт прийдется создавать заново и ложить в него копии шейпов.

Старый 06.09.2010, 11:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Спрайт придется. Но ... я его не увидел, потому что некоторым лень убрать лишнею табуляцию перед вставкой на форум.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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