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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
if (groupCont.contains(sel_group[i]))
					groupCont.removeChild(sel_group[i]);
					if (sel_group[i])
						pieceCont.addChild(sel_group[i]);
Очень плохая привычка. У тебя тут отступ, как-будто второй if вложен в первый, а по факту это два независимых блока. Но это вообще относится ко всему коду. Тут простор для багов просто огромный.
Кстати, проверка contains тоже не самый лучший вариант. Лучше проверяй поле parent.
И еще, за массивами замечено, то если удаляешь что-то из них в цикле, то это что-то может не удалиться сразу. После этого добавив что-то, ты задублируешь ссылку, а потом одна из них удалится. Какая именно не известно.

А вот это что за фигня?
Код AS3:
for (i = 0; i < sel_group.length; i++)
					sel_group[i].checked = false;
				// mark dropped pieces
for (i = 0; i < old_group.length; i++) 
		sel_group[i].checked = true;
Во втором цикле ты задаешь checked = true объекту, находящемуся в sel_group, а перебираешь old_group.
Это так задумано что ли? Или это опечатка? Уверен, что тут может падать) Вряд ли sel_group всегда совпадает с old_group до последнего индекса

И еще. Что ты пытаешься здесь сделать? Зачем там проверка if (sel_group[i]) ?
То есть ты пытаешься сначала этот объект откудато удалить (хотя по твоей же логике он может быть null) и только после этого проверяешь а не null ли он?
И зачем его удалть откуда-то, а потом снова добавлять? Метод addChild уже и так подразумевает удаление из любого другого контейнера
Код AS3:
for (i = 0; i < sel_group.length; i++) {
				if (groupCont.contains(sel_group[i]))
					groupCont.removeChild(sel_group[i]);
					if (sel_group[i])
						pieceCont.addChild(sel_group[i]);
			}
__________________
Ко мне можно и нужно обращаться на ты)


Последний раз редактировалось caseyryan; 15.09.2016 в 11:04.