Как получить размер памяти для коллекции ArrayCollection в Flex

Я создал кеш изображений, который представляет собой коллекцию ArrayCollection, содержащую изображения. Я построил такую ​​функциональность, что кеш может содержать до 250 изображений. Однако изображения могут иметь другой размер, поэтому лучше ограничить общий размер памяти для всех изображений в коллекции ArrayCollection.

Кто-нибудь знает, как я могу получить общий размер памяти ArrayCollection, не просматривая все элементы в ArrayCollection?


person Maurits de Boer    schedule 02.02.2010    source источник


Ответы (1)


Я не уверен, что сможешь. Мой совет - создать новый класс коллекции на основе ArrayCollection (скажем, ImageCacheCollection), который отслеживает текущий размер памяти коллекции и ее предел памяти. Перед добавлением изображения в коллекцию вы сначала убедитесь, что предел памяти не будет превышен. Если это не так, вы добавляете изображение в коллекцию, добавляя при этом размер файла изображения к текущему размеру памяти коллекции.

person Stiggler    schedule 02.02.2010
comment
С таким решением я всегда немного боюсь, что что-то может пойти не так с подсчетом, и подсчитанный размер кеша будет неточным. Но я все равно реализовал его, так как лучшего способа не найти, и у меня еще не было никаких проблем. Спасибо. - person Maurits de Boer; 05.02.2010