Показать сообщение отдельно
Старый 23.06.2010, 18:05
metsys вне форума Посмотреть профиль Отправить личное сообщение для metsys Найти все сообщения от metsys
  № 1  
Ответить с цитированием
metsys

Регистрация: Feb 2010
Сообщений: 102
По умолчанию утечка памяти

не могу понять где тут идёт утечка оперативной памяти

Код AS3:
package {
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Timer;
 
	[SWF(width="794", height="340", frameRate="30", backgroundColor="0xAAAAAA", quality="high")]
	public class Gallery extends Sprite
	{
		private var xmlLoader:URLLoader=new URLLoader();
		private var xmlList:XMLList;
		private var xmlData:XML;
 
		private var photoURL_Array:Array=new Array();							
 
		private var timer:Timer=new Timer(5000, 1);
 
		private var picLoader:Loader=new Loader();
 
		public function Gallery()
		{
			xmlLoader.addEventListener(Event.COMPLETE, xmlLoadedFunc);
			xmlLoader.load(new URLRequest("gallery.xml"));
		}
 
		private function xmlLoadedFunc(e:Event):void
		{
			xmlData=new XML(e.target.data);
			xmlList=xmlData.children();
			trace("gallery.xml loaded");
 
			for (var i:int=0; i<xmlData.children().length(); i++)
			{
				photoURL_Array[i]=xmlList[i].attribute("photoURL");
			}
 
		loadingGallery();
		}
 
		private function loadingGallery():void
		{
			picLoader.load(new URLRequest(photoURL_Array[Math.floor(photoURL_Array.length*Math.random())]));
			picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, showPic);
		}
 
		private function showPic(e:Event):void
		{
			addChild(picLoader);
 
			timer.start();
			timer.addEventListener(TimerEvent.TIMER_COMPLETE, restart);
		}
 
		private function restart(e:TimerEvent):void
		{
			removeChild(picLoader);
			loadingGallery();
		}
	}
}