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

Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
По умолчанию Вопрос по целесообразности применения статических методов для деактивации объектов

Решил все часто используемые функции вынести в общий класс.
Для того, чтобы постоянно не создавать новый экземпляр класса, решил сделать все методы в нем статическими.
Поэтому возник следующий вопрос про целесообразность некоторых из них: является ли необходимым наличие метода disposeCommonLoader и его дальнейшее применение?
Хотелось бы разобрать этот вопрос на примере загрузчика.
Вот мой класс:
Код AS3:
package {
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
 
public class CommonFunctions extends Sprite {
 
	public static var commonLoader:Loader;
 
	public function GameGraphics() {
 
	};
 
	public static function loadObject(adress:String, commonOnLoad:Function):void {
		var commonLoaderUrlReq:URLRequest = new URLRequest(adress);
		commonLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, commonOnLoad);
		commonLoader.load(commonLoaderUrlReq);
	};
 
	public static function disposeCommonLoader(commonOnLoad:Function):void {
		commonLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, commonOnLoad);
		commonLoader = null;
	};		
};
}
Как видно, функция слушателя события у меня должна располагаться где-нибудь во внешнем классе, который использует приведенный выше. Например,
Код AS3:
//Где то во внешнем классе
private function loadSomething() {
	CommonFunctions.commonLoader = new Loader();
	CommonFunctions.loadObject("http://www.example.com, onLoadSomething);
};
 
private function onLoadSomething)(e:Event):void {
	CommonFunctions.disposeCommonLoader(onLoadSomething));
};
Вот и становится мне не понятно, стоит ли принудительно обнулять лоадер с помощью статического метода и удалять слушатель, либо при следующем запуске сборщика мусора за мной все подчистится само (ведь экземпляра самого класса CommonFunctions нету)?


Последний раз редактировалось Furinax; 30.12.2009 в 13:32.