uint
, int
, Number
и Boolean
не обнуляются в AS3. Число может быть NaN
, но это действительно лучшее, что вы можете получить. int
и uint
всегда просто 32-битные, поэтому вы не можете вставить туда нулевую ссылку.
Тип очистки, которую вы пытаетесь выполнить, не может быть выполнен, поскольку в AS3 есть концепция закрытых классов. Запечатанный класс имеет фиксированный размер в памяти. Когда дело доходит до переменных экземпляра, думайте об этом как о C struct
, вы можете только сбросить все или ничего. Конечно, в C вы можете делать все, что угодно, это фиксированный блок в памяти, объект по одной ссылке на переменную.
То, что вы хотите сделать, - это работать только с динамическими переменными, которые поддерживаются по-разному.
Вам не нужно выполнять такую очистку, так как Flash имеет сборку мусора, как и большинство сред выполнения в настоящее время. Он также имеет дело с вложенными и циклическими ссылками, единственное, в чем вы должны быть уверены, это то, что вы удаляете любые «внешние» ссылки на этот класс. Вещи, которые обычно не собираются, - это объекты в списке отображения, таймеры и интервалы выполнения, а также вещи, связанные с вводом / выводом. Как только у вас появится цепочка ссылок к вашему объекту, она не будет собрана.
Допустим, у вас есть object A
с обработчиком событий для перемещения мыши по объекту в некотором списке, ссылаясь на object B
. B не будет собираться, но как только не будет цепочки, ведущей к объекту, она будет собрана (рано или поздно GC будет довольно ленивым. Но чем больше памяти вы используете, тем больше она выполняет свою работу).