Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.12.2008, 20:24
Nata_cher вне форума Посмотреть профиль Отправить личное сообщение для Nata_cher Посетить домашнюю страницу Nata_cher Найти все сообщения от Nata_cher
  № 1  
Ответить с цитированием
Nata_cher

Регистрация: Mar 2001
Сообщений: 160
Отправить сообщение для Nata_cher с помощью ICQ Отправить сообщение для Nata_cher с помощью Skype™
Question И снова освобождение памяти...

перерыла поиск, ничего внятного для себя не нашла, поэтому не бейте сильно... Спасибо.
Вот в чем вопрос.
Код:
loadMovieClip = function(_mc){
	 movie_mc.removeMovieClip();
	 var movie_mc = this.createEmptyMovieClip("movie", 2);
	 movie_mc._y = 200;
	 movie_mc.loadMovie(_mc);
	 }
sc1_btn.onRelease = function(){
	loadMovieClip("movie1.swf");
	}
sc2_btn.onRelease = function(){
	loadMovieClip("movie2.swf")
	}
Когда нажимаешь на кнопочку загружается соотвественный наружный swf и проигрывается, когда нажимаешь на другой память увеличивается, если еще нажмешь, еще увеличивается... и т.д.
Конечно в наружных swf есть свои EnterFrame , даже видео, но мне казалось, что при удалении объекта с помощью removeMovieClip(); память должна освобождаться.
Поясните почему так происходит, и что сделать чтобы память освободить?
Заранее спасибо
__________________
Лень - двигатель прогресса....

Старый 10.12.2008, 20:46
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
movie_mc - локальная переменная, и сразу после вызова функции она становится undefined. Пишите:
Код AS1/AS2:
this.movie.removeMovieClip();
А иначе у вас каждый раз новый создается клип, вот и потребление памяти растет

P. S. То что при создании каждый раз прописывается одна и та же глубина - ни на что не влияет, это в as3 при попытке создания клипа на той же глубине Вас обругает плеер.
__________________
4am is time to rock

Старый 10.12.2008, 20:58
Nata_cher вне форума Посмотреть профиль Отправить личное сообщение для Nata_cher Посетить домашнюю страницу Nata_cher Найти все сообщения от Nata_cher
  № 3  
Ответить с цитированием
Nata_cher

Регистрация: Mar 2001
Сообщений: 160
Отправить сообщение для Nata_cher с помощью ICQ Отправить сообщение для Nata_cher с помощью Skype™
не помогло, ситуация та же.... память растет
__________________
Лень - двигатель прогресса....

Старый 10.12.2008, 21:26
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
unloadMovie попробуйте еще сделать перед удалением
__________________
4am is time to rock

Старый 11.12.2008, 01:17
Nata_cher вне форума Посмотреть профиль Отправить личное сообщение для Nata_cher Посетить домашнюю страницу Nata_cher Найти все сообщения от Nata_cher
  № 5  
Ответить с цитированием
Nata_cher

Регистрация: Mar 2001
Сообщений: 160
Отправить сообщение для Nata_cher с помощью ICQ Отправить сообщение для Nata_cher с помощью Skype™
не помогает, все остается также... память увеличивается при каждой новой подзагрузке внешнего объекта...
__________________
Лень - двигатель прогресса....

Старый 11.12.2008, 05:35
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 6  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Nata_cher, у меня ваш код не вызывает увеличение расходя памяти. Даже если удалить строку
Код AS1/AS2:
movie_mc.removeMovieClip();
не вижу проблемы.

А вот если сделать вот так:
Код:
var i = 1;
loadMovieClip = function(_mc){
	 movie_mc.removeMovieClip();
	 var movie_mc = this.createEmptyMovieClip("movie" + i, i++);
	 movie_mc._y = 200;
	 movie_mc.loadMovie(_mc);
	 }
То прирост на лицо: +60Мб после каждой кнопки (грузим 300кб жипеги)

Старый 11.12.2008, 11:10
Nata_cher вне форума Посмотреть профиль Отправить личное сообщение для Nata_cher Посетить домашнюю страницу Nata_cher Найти все сообщения от Nata_cher
  № 7  
Ответить с цитированием
Nata_cher

Регистрация: Mar 2001
Сообщений: 160
Отправить сообщение для Nata_cher с помощью ICQ Отправить сообщение для Nata_cher с помощью Skype™
Скажите, при удалении MC, удаляются все события внешнего подргужаемого файла, потому что там есть EnterFrame, есть процессы управления видео, не могут они оставаться?
__________________
Лень - двигатель прогресса....

Старый 11.12.2008, 16:57
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 8  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
если на них есть ссылки из основного мувика то могут и остаться

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.