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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
dimarik, вопрос, у вас там в mail.ru специально ставят программистам задачи без необходимости усложнять даже самые простые вещи? Видимо поэтому сервисы мэйл.ру всегда самые тормозные и наполненные ошибками из всех.
Честно сказать, не понял зачем здесь гонять 2 цикла, когда задачу можно решить одним
Код AS3:
var array:			Array 			= [/*какие-то объекты*/];
var length:			uint 			= array.length;
var targetObject:	DisplayObject 	= null;
 
for (var i:int = 0; i < length; i++) {
    targetObject = array[i] as DisplayObject;
	if (targetObject != this) {
		if (this.hitTestObject(targetObject)) {
			trace("столкновение");
		}
	}
}
Ну или, если задача не относится к this, то как-то так
Код AS3:
var array:			Array 			= [/*какие-то объекты*/];
var length:			uint 			= array.length;
var targetObject:	DisplayObject 	= null;
var myObjectIndex:	int				= array.indexOf(someObject); // хоть indexOf и использует цикл внутри, но, во-первых он выполнится всего 1 раз, а во-вторых не засоряет код лишними строчками
 
for (var i:int = 0; i < length; i++) {
    targetObject = array[i] as DisplayObject;
	if (i != myObjectIndex) {
		if (someObject.hitTestObject(targetObject)) {
			trace("столкновение");
		}
	}
}
Это хотя бы выглядит более читабельно