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

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

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

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

Здравствуйте, подскажите что я делаю не правильно. Класс обращается за данными каждые 10 секунд. При какдом запросе приложение все больше и больше памяти "съедает" (смотрю через flash.system.System totalMemory). Как грамотно освободиться от утечки?
Код AS3:
public class NameClass
	{
		private var variables:URLVariables;
		private var urlRequest:URLRequest;
		private var loader:URLLoader;
 
		private var timer:Timer  = new Timer(10000, 0);
 
		private var error:String;
 
		public function NameClass() 
		{
			timer.addEventListener(TimerEvent.TIMER, request);
			timer.start();
		}
 
		public function stop():void {
			timer.stop();
		}
		public function start():void {
			timer.start();
		}
 
		public function get error1():String {
			return error;
		}
		private function request(e:TimerEvent):void {
			variables = new URLVariables();
			variables.md5 = MD5.hash("SomeString");
                                  variables.data = "data";
 
			urlRequest = new URLRequest("http://192.168.10.50/test.php");
			urlRequest.data = variables;
			urlRequest.method = URLRequestMethod.POST
 
			loader = new URLLoader();
 
			loader.addEventListener(Event.COMPLETE, update);
			loader.addEventListener(IOErrorEvent.IO_ERROR, io_error);
 
			try {
				loader.load(urlRequest);
			}
			catch (error:Error) {
				loader.removeEventListener(Event.COMPLETE, update);
				loader.removeEventListener(IOErrorEvent.IO_ERROR, io_error);
			}
		}
 
		private function update(e:Event):void {
			loader.removeEventListener(Event.COMPLETE, update);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, io_error);
			//Обработка
		}
 
		private function io_error(e:IOErrorEvent):void {
			e.currentTarget.removeEventListener(Event.COMPLETE, update);
			e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR, io_error);
			error = "Ошибка I/O";
			this.stop();		
		}
	}

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

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

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


 


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


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