Цитата:
|
А я у каждого объекта создаю переменную life, если объект умирает, то значение становится life false и соответственно перед битьём проверяется значение life.
|
Это тоже не правильно. Ну нет у него жизней, в человеческом понимании, но для программы то он живее всех живых.
Цитата:
|
А почему так? это ж вроде как одна ссылка на один экземпляр
|
Экземпляр один, а ссылки разные.
Самый разумный способ - это в классе Hero сделать метод, в котором все, что он насоздавал внутри, уничтожается, и зануляются все ссылки на внешние объекты (если таковые имеются)
И дальше уничтожение свелось бы к такой логике:

Код AS3:
if (hero != null) {
hero.dispose();
var index:int = someArray.indexOf(hero); // и сносим из массива, раз уж он там
if (index > -1) someArray.splice(index, 1);
hero = null;
}