Показать сообщение отдельно
Старый 07.11.2009, 19:24
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Чтобы убить объект (ссылку на него) присвойте ему null
Вот только немного наоборот =)

Объект - это объект, то есть участок в памяти. А переменная - это ссылка, позволяющая нам к этому участку обратиться.
Ссыслку мы обнулить можем - тогда флеш не будет видеть возможности обратиться к объекту (участку памяти) и участок будет очищен. А зачем, спрашивается, содерать данные, если использовать их все-равно не получится? (если ссылок на объект нет)
А вот сам объект обнулить напрямую - на это есть другие механизмы (GarbageCollector), которые в общем случае вручную не вызываются

Чтобы было понятно - для данного случая:
Код AS3:
new Boss()
- создается объект класса Boss
Код AS3:
boss = new Boss()
- создается объект класса Boss и переменная boss становится ссылкой на него.
Код AS3:
addChild(boss)
- объект, на который ссылается переменная boss, заносится в список отображения.

С момента занесения объекта в список отображения, на него, фактически, имеется 2 ссылки: переменная boss (оно и понятно) и индекс в списке отображения ( то есть мы можем обратиться к объекту двумя путями - через boss и через getChildAt())

Что происходит когда Вы удаляете объект со сцены? - одна из ссылок (та которая getChildAt()) на объект перестает работать. Однако, вторая ссылка (которая boss) как работала, так и работает.
По этому объект продолжает существовать
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 07.11.2009 в 19:36.