Показать сообщение отдельно
Старый 24.06.2009, 15:12
giir вне форума Посмотреть профиль Отправить личное сообщение для giir Найти все сообщения от giir
  № 1  
giir

Регистрация: Jun 2009
Сообщений: 13
По умолчанию Удаление объектов в АС3

Насколько я знаю объекты в АС3 удаляются так же как в java, т.е. когда на объект не остается ссылок он автоматом удаляется.
Так вот у меня возникла небольшая проблема. Код, конечно, гораздо сложнее, но отразить самую суть приведу лишь кусок:
Код AS3:
// MovieClip добавляется в stage (General.getStage() - возвращает stage)
// Diver - наследуется от мувиклипа
General.getStage().addChild(new Diver());
 
// Hero  - наследуется от мувиклипа
General.getStage().addChild(new Hero());
...
// В классе Diver при опр. условиях устанавливаем статическую переменную Hero.enemy
Hero.enemy=this;
 
// В классе Hero при опр. условиях удаляем из детей у stage объект типа Diver и зануляем ссылку Hero.enemy
if(Hero.enemy!=null){
  if (Hero.enemy.parent != null) {
    Hero.enemy.parent.removeChild(Hero.enemy);
    Hero.enemy = null;
  }
}
Казалось бы - объект Diver должен удалится если и не совсем,то уж по крайтей мере из детей stage точно!
Ан нет... срабатывает Diver.onEnterFrame()...

Коллеги, подскажите, пожалуйста что я делаю не так... ну или если мой код совсем не поймете, то хотябы просто объясните как удалить объект совсем, чтобы не срабатывало у instance не срабатывало событие Event.ENTER_FRAME.

Заранее спасибо!!!