Руководство по actionscript. часть 5, стр. 068
Рис. 26.13. Эффект старой фотографии, теперь с фильтрами
Освобождение памяти, занимаемой растровыми изображениями
Каждый пиксел в любом объекте BitmapData занимает небольшое количество системной памяти — 4 байта, если быть точным (один байт для каждого цветового канала). Хотя объем памяти, занимаемой каждым пикселом, сам по себе незначителен, в совокупности пикселы могут приводить к существенному расходованию памяти. Таким образом, чтобы уменьшить объем памяти, потребляемый средой Flash при работе с растровыми изображениями, каждая программа на языке ActionScript должна гарантировать, что все объекты BitmapData, когда в них отпадает необходимость, становятся доступными для сборки мусора.
Чтобы некоторый объект BitmapData стал доступен для сборки мусора, необходимо удалить все ссылки либо на него, либо на объекты, которые ссылаются на данный объект. В любом случае память, занимаемая объектом BitmapData, будет автоматически освобождена сборщиком мусора в следующем цикле сборки мусора.
Чтобы немедленно освободить память, занимаемую пикселами объекта BitmapData (вместо того чтобы ожидать освобождения памяти сборщиком мусора), используйте метод экземпляра dispose ( ) класса BitmapData. Например, следующий
код создает объект BitmapData, который занимает 1600 байт (ширина 20 пикселов х высота 20 пикселов х 4 байта на пиксел):
var imgData:BitmapData = new ВтtmapData(20. 20. false. OxFFOOFFOO):
Чтобы немедленно освободить 1600 байт памяти, мы используем метод dispose ( ), как показано в следующем коде:
imgData. dispose( ): // Освобождаем память, занимаемую объектом imgData
Метод dispose ( ) освобождает память, в которой хранится информация о пикселах объекта imgData, но не освобождает память, занимаемую самим объектом imgData. Память, занимаемая объектом imgData, будет освобождена в соответствии с обычным циклом сборки мусора.
Как только над объектом BitmapData будет вызван метод dispose ( ), данный объект окажется недоступным. Обращение к его методам и переменным приведет к генерации исключения ArgumentError.