![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 5
|
столкнулся с проблемой что память освобождается не вся при использовании плеера9(System.gc() и unloadAndStop нету к сожалению)
пример кода (b1 b2 -кнопки на сцене, сont- контейнер свф) import flash.events.Event; import flash.display.Loader; b1.addEventListener(MouseEvent.CLICK,loadswf); b2.addEventListener(MouseEvent.CLICK,unloadswf); var swfContent; var myloader:Loader; function loadswf(e:MouseEvent) { var myrequest:URLRequest = new URLRequest("external.swf"); myloader= new Loader(); myloader.load(myrequest); myloader.contentLoaderInfo.addEventListener(Event. COMPLETE, addMovie,false,0,true); } function addMovie(e:Event) { myloader.contentLoaderInfo.removeEventListener(Event. COMPLETE, addMovie); swfContent = e.target.content; cont.addChild(swfContent); } function unloadswf(e:MouseEvent) { myloader.unload(); cont.removeChild(swfContent) myloader=null; while( swfContent.numChildren > 0 ){ swfContent[swfContent.getChildAt( 0 )] = null; swfContent.removeChildAt( 0 ); } swfContent= null; //GC hack try { new LocalConnection().connect('foo'); new LocalConnection().connect('foo'); } catch (e:*) {} } |
|
|||||
|
Цитата:
Цитата:
2. Сначала занулить внешние ссылки, а потом уже unload. 3. Не использовать хаки.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 5
|
вот имеено что в загружаемой флешке нет никаких листенеров и потоков.(несколько анимированых мувиклипов)
открываю process explorer. смотрю использование памяти при загрузке занялось 25 мб. при выгрузке ушло только примерно половина.(при просмотре Commit Charge) а как выгрузить остальное без использования хаков? Желательно поправьте код unloadSwf если что не так, на пальцах смотриться намного эффективнее. |
|
|||||
|
Регистрация: Aug 2001
Адрес: Toronto
Сообщений: 41
|
в фп9 есть баг с garbage collection - имеются мемори ликс.
писать для ФП10 использовать .unloadAndStop(); профайлер кст использование памяти показывает неверно. нужно использовать именно task manager. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:39. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| gc утечки памяти As3 |
| Опции темы | |
| Опции просмотра | |
|
|