Показать сообщение отдельно
Старый 08.04.2011, 16:20
Monade 2 вне форума Посмотреть профиль Отправить личное сообщение для Monade 2 Найти все сообщения от Monade 2
  № 6  
Ответить с цитированием
Monade 2
 
Аватар для Monade 2

Регистрация: Apr 2011
Сообщений: 38
это само собой, removeChild используем. а с какой примерно периодичностью запускается GC?

и еще пример - если в MovieClip куча всякого понапихано, например кнопки, поля TLF, опять же Bitmap, их как-то по отдельности нужно обрабатывать?

Добавлено через 1 час 57 минут
интересное наблюдение. есть код:

Код AS3:
addEventListener(Event.ENTER_FRAME, function(){ trace(System.totalMemory);  } );
 
var container = new MovieClip;
addChild(container );
 
var lHome:Loader = new Loader();
var urlrHome:URLRequest = new URLRequest("test2.swf");
 
function c_load (e:Event){
	lHome.load(urlrHome);
	lHome.contentLoaderInfo.addEventListener(Event.COMPLETE, movieLoaded);
}
 
function movieLoaded(event:Event):void {
	container.addChild(lHome);
	lHome.contentLoaderInfo.removeEventListener(Event.COMPLETE, movieLoaded);
}
 
function c_unload(e:Event){
 
	lHome.unloadAndStop(false);
	container.removeChild(lHome);
	lHome = null;
	container = null;
 
	try {
		new LocalConnection().connect('foo');
		new LocalConnection().connect('foo');
	} catch (e:*) {}
}
в тестовом ролике есть несколько больших картинок BitmapData. Код:

Код AS3:
try {
	new LocalConnection().connect('foo');
	new LocalConnection().connect('foo');
} catch (e:*) {}
принудительный вызов GC (вроде как). так вот, если в тестовом ролике находятся только BitmapData, память успешно освобождается после вызова функции c_unload. если же там есть хотя бы одна кнопка или хотя бы одно динамическое текстовое поле, этого не происходит (память не освобождается). кто-нибудь сталкивался с этим, и если да, то как можно решить проблему?

заранее спасибо!

Добавлено через 2 часа 0 минут
смена false на true в unloadAndStop ничего не меняет (хотя по умолчанию true)