![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 37
|
Как очистить память при работе с массивом MovieClip'ов? Что нужно сделать, чтобы при подгрузке очередного MovieClip'а предыдущий выгружался из памяти? Сейчас, пока я не переберу все элементы массива, отжирается память. Хотелось бы ее освобождать как-то.
А сама схема такая: есть спрайт на слое под кнопками, я в этот спрайт с помощью addChild и removeChild подсовываю MovieClip'ы из массива (нажатии кнопок nextVideo и prevVideo). |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 37
|
КорДум
Как так "обnullить"... Мне нужно подгрузить из массива MovieClip, проиграть его, сменить на другой MovieClip из массива, очистить память. Ну и т.д. Мне не нужно убивать массив. Мне не нравится что массив полностью в памяти висит, а не только тот MovieClip, что проигрывается в данный момент времени. Например, я запускаю первый элемент массива, в этот момент времени в памяти только он, и ему не нужны остальные элементы. Зачем мне при проигрывании второго элемента удерживать в памяти первый? Наверняка его можно как-то выгрузить...Добавлено через 9 минут [add] И второй вопрос - почему при загрузке MovieClip'а памяти отжирается в десятки раз больше чем он весит? Видео из MovieClip'а весит 7 метров, а при подгрузке MovieClip'а отжирается около 200 метров. Если бы отжиралось 7 метров, я бы про память не спрашивал ![]() Последний раз редактировалось ignition; 05.06.2010 в 13:51. |
|
|||||
|
Обnullить вот так: arr[5] = null. Тогда ссылка на мувиклип пропадет, клип будет доступен сборке мусора. В вашей ситуации, когда нужно постоянно менять клипы и они не одноразовые, лучше каждый раз создавать новый экземпляр класса Mc1, Mc2, ..., McN, перед этим удалять все ссылки на клип предыдущий. Это как я бы сделал.
А, или сделать вот так: Это лишь ссылки на классы клипов. А создавать объекты так:
__________________
тут я |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 37
|
Так и не придумал, где (точнее как...) мне в такой схеме прикрутить null:
var counter:int=-1; var forward:Array=new Array(clip1_mc,clip2_mc,clip3_mc,clip4_mc,clip5_mc,clip6_mc); stop(); ..... function goNext(event:MouseEvent) { if (video_container_mc.numChildren) { video_container_mc.removeChildAt(0); //Где-то здесь должен быть null <что-то>=null; }; counter=(counter+1)%6; var cur_movie:MovieClip=new forward[counter]; video_container_mc.addChild(cur_movie); }; ..... next_btn.addEventListener(MouseEvent.CLICK, goNext); Последний раз редактировалось ignition; 07.06.2010 в 01:25. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 37
|
КорДум
Судя по тому, что мне показывает ProcessExplorer, память не возвращается, так и остается занятой. Пока я не переберу все клипы память отжирается. Как только я иду на второй круг, память больше не занимается. А почему переменная-ссылка на объект должна обнулиться? Здесь?: |
|
|||||
|
Цитата:
Если на мувиклип более нет никаких ссылок - значит к нему никак не обратиться - забываем про мувиклип. ЗЫ Если Вы смотрите через диспетчер задач - не верьте ему =)
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|