Так что я застрял на этом около 2 недель, и я не знаю, как прогрессировать.ReferenceError: Ошибка # 1069 Actionscript 3
У меня есть массив клипов под названием «_main.speederArray», и я пытаюсь сделать так, чтобы, если они сталкиваются друг с другом, они оба уничтожаются. Вот мой код в классе «Speeder» для обнаружения столкновения.
private function detectionHandler():void{
//trace("array length", _main.speederArray.length);
detectionID = _main.gameCounter;
for (var i:int = _main.speederArray.length -1; i >= 0; i--){
var speeder:Speeder = _main.speederArray[i];
if(speeder.destroyMe) continue;
if(speeder.detectionID == this.detectionID) continue;
if (boxIntersect(this, speeder)){
trace("collision");
destroyMe = true;
speeder.destroyMe = true;
}
}
}
Здесь приведена функция boxIntersect, к которой относится этот код. Это в том же классе
private function boxIntersect (speeder1:Speeder, speeder2:Speeder):Boolean{
if(speeder1.x + speeder1.distRight < speeder2.x + speeder2.distLeft) return false; //checking for overlap on X axis
if(speeder1.x + speeder1.distLeft > speeder2.x + speeder2.distRight) return false;
if(speeder1.y + speeder1.distBot < speeder2.y + speeder2.distTop) return false; // checking for overlap on Y axis
if(speeder1.y + speeder1.distTop > speeder2.y + speeder2.distBot) return false;
return true;
}
И вот здесь я думаю, что проблема в этом. У меня есть класс под названием «spawner», и именно здесь я собираюсь обрабатывать созданные и уничтоженные объекты. Вот код, в котором я пытаюсь объединить объекты из массива в зависимости от того, установлено ли значение destroyMe bool равным true. На этом этапе я смутил дерьмо из себя, поэтому любая помощь будет принята с благодарностью!
private function updateArray(e:Event):void{
for(var i:int = _main.speederArray.length - 1; i>=0; i--){
var speeder:Speeder = _main.speederArray[i];
if(speeder.destroyMe){
//trace("hello");
removeChild(speeder[i]); // take it off the stage
_main.speederArray[i] = null;
_main.speederArray.splice(i, 1); //remove it from the array
}
}
}
Теперь игра работает, однако, как только 2 объекта в одном массиве сталкиваются, я получаю след столкновения в окне вывода, но сразу после того, как я получаю это:
ReferenceError: Error # 1069 : Свойство 1 не найдено на com.game.Speeder и нет значения по умолчанию. на com.game::Spawner/updateArray()
Понятия не имею, что это значит :(
Любая помощь оценили спасибо, ребята!
Огромное спасибо, я люблю тебя <3 –