Спасибо за ответ.
Просто пытаюсь написать "менеджер объектов" и хочется сделать это красиво.
т.е. строкой

Код AS3:
var smb:Symbol1 = new Symbol1();
мы всего лишь указываем что smb будет хранить ссылку на объект, а не сам объект.
возможно ли создать объект который не будет иметь на себя ссылки и не быть чьим либо потомком?
я так понимаю возможно:

Код AS3:
var smb:Symbol1 = new Symbol1();
smb = null;
тогда как потом его удалить?
и далее:
попробовал контролировать объекты в сцене следующим образом, создал класс Global.as и создал в нем массив Unit:

Код AS3:
package {
public class Global {
public static var Unit:Object = [];
public function Global() {
// constructor code
}
}
}
основному клипу сделал класс main.as

Код AS3:
package {
import flash.display.MovieClip;
import Global;
public class main extends MovieClip {
public function main() {
// constructor code
Global.Unit[0] = new Symbol1();
Global.Unit[1] = new Symbol1();
Global.Unit[2] = new Symbol1();
//первый
trace(Global.Unit[0].numChildren, Global.Unit[2].numChildren);
//1 1
this.addChild(Global.Unit[0]);
Global.Unit[0].addChild(Global.Unit[1]);
//второй
trace(Global.Unit[0].numChildren, Global.Unit[2].numChildren);
//2 1
this.addChild(Global.Unit[2]);
Global.Unit[2].addChild(Global.Unit[1]);
//третий
trace(Global.Unit[0].numChildren, Global.Unit[2].numChildren);
// 1 2
Global.Unit[1].parent.removeChild(Global.Unit[1]);
Global.Unit.splice(1,1);
}
}
}
и сразу возникли вопросы:
первый trace возвращает "1 1"? кто эти дети?
второй и третий trace меня порадовали - т.е. родитель знает сколько у него детей даже если вдруг его ребенку назначить другого родителя он это отследит. Всегда так, или возможны исключения?
Правильно ли удалять ребенка (из любого места и даже другого класса если ему (другому классу) также импортировать Global) следующим образом:

Код AS3:
Global.Unit[1].parent.removeChild(Global.Unit[1]); //удаляем объект
Global.Unit.splice(1,1); //удаляем ссылку на него
?
или есть более элегантный метод удаления объектов?