Показать сообщение отдельно
Старый 28.01.2011, 23:45
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 7  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Пользуйтесь пожалуйста профайлером, все вопросы отпадут.

Наглядный тест:

Код AS3:
package {
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.net.URLRequest;
	import flash.utils.Dictionary;
 
	public class LoaderTest extends Sprite {
 
		protected var dict : Dictionary = new Dictionary(true); 
 
		public function LoaderTest() {
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
			var loader : Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
			loader.load(new URLRequest("http://www.flasher.ru/forum/image.php?u=21620&dateline=1288193880"));
 
			dict[loader] = true;
		}
 
		private function enterFrameHandler(event : Event) : void {
			var b : Boolean = true;
			for (var prop : * in dict) {
				trace(prop);
				b = false;
			}
			if (b) {
				trace("deleted");
			}
		}
 
		private function completeHandler(event : Event) : void {
			var loader : Loader = (event.target as LoaderInfo).loader;
			var bitmap : Bitmap = loader.content as Bitmap;
			var sprite : Sprite = new Sprite();
 
			sprite.addChild(bitmap);
			sprite.addEventListener(MouseEvent.CLICK, clickHandler);
 
			addChild(sprite);
 
			loader.unloadAndStop(true);
		}
 
		private function clickHandler(event : MouseEvent) : void {
			var spr : Sprite = event.target as Sprite;
			spr.removeEventListener(MouseEvent.CLICK, clickHandler);
 
			while (spr.numChildren) {
				spr.removeChildAt(0);
			}
 
			removeChild(spr);
		}
	}
}
С использованием new LoaderContext(false,ApplicationDomain.currentDomain) ничего не меняется, так что с ApplicationDomain промашка, или я не до конца понял мысль dimarik'а.
Смотреть тест надо в профайлере с веселой кнопочкой "run gc"
__________________
Блог, Twitter
Брюзга.


Последний раз редактировалось mayakwd; 29.01.2011 в 00:06.