![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
Доброго времени суток
Периодически вываливается ошибка TypeError: Error #1009: Cannot access a property or method of a null object reference. О причине я догадываюсь, нов голову не приходит решение. Думаю проблема в том, что я запуская два цикла while, и когда хиттест вызывает функция "fn_enemy_1_damage" и там выполняется условие, необходимые для удаления объекта, то в цикле происходит сбой, т.к. он вызывает удалённый объект. В голову так и не приходит, как исправить ошибку function fn_hittest(): void { var i: Number = enemy_1_Array.length; while (i--) { var j: Number = FireArray.length; while (j--) { var enemy_1: enemy_1_mc = enemy_1_Array[i]; var boll_st: boll_mc = FireArray[j]; if (enemy_1.hitTestObject(boll_st)) { fn_expl(boll_st.x, boll_st.y); if (boll_st.tip == 1) { fn_point(500); fn_enemy_1_damage(i, 15); } if (boll_st.tip == 2) { fn_point(100); fn_enemy_1_damage(i, 10); } removeChild(boll_st); FireArray.splice(j, 1); } } } } //жизни врагов enemy_1_Array: Array = new Array(); function fn_enemy_1_damage(i: Number, damage: Number): void { var enemy_1: enemy_1_mc = enemy_1_Array[i]; enemy_1.life = enemy_1.life - damage; if (enemy_1.life <= 0) { removeChild(enemy_1_Array[i]); removeChild(vihlop_l_enemy_1_Array[i]); removeChild(vihlop_r_enemy_1_Array[i]); enemy_1_Array.splice(i, 1); vih_l_enemy_1_Array.splice(i, 1); vih_r_enemy_1_Array.splice(i, 1); } } Последний раз редактировалось neonoviiwolf; 02.11.2014 в 05:46. |
|
|||||
|
Проверяйте не равен ли вызываемый объект null.
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
alexandrratush, спасибо, помогло, а тоя уже через break, что б хоть как то работала
ошибка похоже была в передачи данных функции Добавлено через 8 минут +ещё вопрос, не совсем понятно, вот код break - прервёт оба цикла или только вложенный? |
|
|||||
|
Регистрация: May 2009
Сообщений: 26
|
только вложенный.
Последний раз редактировалось VisualDima; 02.11.2014 в 15:02. Причина: ошибка форматирования |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
спасибо
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|