|
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Очистка загрузчиков
Нашел загрузчик для картинок, переведенный в ByteArray:
package { public class ImageLoader{ import flash.net.*; import flash.events.*; public function load(bytes:*):void { var failover_loader:Loader = new Loader(); failover_loader.loadBytes(bytes); failover_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); } private function loadComplete(e:Event):void { var loaderInfo:LoaderInfo = LoaderInfo(e.target); trace(loaderInfo.width + "x" + loaderInfo.height); } } } Загружаю кучу фоток: for(var i:int = 0; i < 20; i++) { var il:ImageLoader = new ImageLoader(); il.load(bytes); } Как мне удалять каждый экземпляр загрузчика после успешной загрузки? |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
у вас область видимости переменной il - текущий метод. После выполнения всего цикла и выхода из метода ссылок на 20 ImageLoader'ов не останется что есть утечка памяти и, кстати, ваш загрузчик страдает той же самой болезнью
|
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
undefined, как избежать этой утечки памяти?
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
вынести объявление
из метода на уровень класса/кадра. и поправить загрузчик: package { import flash.net.*; import flash.events.*; public class ImageLoader{ private var failover_loader:Loader; public function load(bytes:*):void { failover_loader = new Loader(); failover_loader.loadBytes(bytes); failover_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); } private function loadComplete(e:Event):void { failover_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete); var loaderInfo:LoaderInfo = LoaderInfo(e.target); trace(loaderInfo.width + "x" + loaderInfo.height); } } } |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
http://help.adobe.com/ru_RU/FlashPla...l#unload%28%29
http://help.adobe.com/ru_RU/FlashPla...dAndStop%28%29 А для чего вам байты грузить? |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
Добавлено через 6 минут еще момент: подписку лучше делать до загрузки т.к. подозреваю, что loadBytes - операция синхронная и Event.COMPLETE кинется сразу же после вызова loadBytes |
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Цитата:
Добавлено через 3 минуты Цитата:
Спасибо за помощь. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
Часовой пояс GMT +4, время: 18:07. |
|
« Предыдущая тема | Следующая тема » |
|
|