Quadro9
05.10.2015, 14:50
допустим у меня в векторе хранятся объекты которые я хочу удалить.
я делаю
var layer:Layer;
for (var i:int = _layers.length-1; i >= 0; i--)
{
layer = _layers[i];
if (layer.hasEventListener(StateEvent.CHANGE_STATE))
{
layer.removeEventListener(StateEvent.CHANGE_STATE, dispatchEvent);
}
layer.dispose();
_layers.pop();
}
при условии что dispose() этих объектов написан правильно, этого достаточно?
Теперь сам dispose, если в объекте который я удаляю есть массив, то после удаления всех элементов из него, нужно занулить сам массив? Что еще нужно занулять? Все объекты который созданы через new?
А ссылки на объекты которые были переданы из вне? Number'ы и Boolean'ы занулять не нужно?
public function dispose():void
{
for (var i:int = _items.length-1; i >= 0; i--)
{
_items[i].dispose();
_items.pop();
}
_items = null;
_rect = null;
_model = null;
}
Поправьте или подтвердите пожалуйста мои предположения
я делаю
var layer:Layer;
for (var i:int = _layers.length-1; i >= 0; i--)
{
layer = _layers[i];
if (layer.hasEventListener(StateEvent.CHANGE_STATE))
{
layer.removeEventListener(StateEvent.CHANGE_STATE, dispatchEvent);
}
layer.dispose();
_layers.pop();
}
при условии что dispose() этих объектов написан правильно, этого достаточно?
Теперь сам dispose, если в объекте который я удаляю есть массив, то после удаления всех элементов из него, нужно занулить сам массив? Что еще нужно занулять? Все объекты который созданы через new?
А ссылки на объекты которые были переданы из вне? Number'ы и Boolean'ы занулять не нужно?
public function dispose():void
{
for (var i:int = _items.length-1; i >= 0; i--)
{
_items[i].dispose();
_items.pop();
}
_items = null;
_rect = null;
_model = null;
}
Поправьте или подтвердите пожалуйста мои предположения