Показать сообщение отдельно
Старый 23.02.2011, 10:50
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Question Оптимизация использования ресурсов

Здравствуйте.
Ответьте пожалуйста на мои несколько вопросов на счёт оптимизации использования ресурсов Flash-плеером.
Может кто рылся или знает какие из этих вариантов более быстродействующей и менее ресурсоёмкие, или вообще нет разницы.
1. Аттач мувиклипа, к примеру объект с 4 подклипами у которых разные кейфреймы, но при атаче используется лишь одна.
1.1. Лучше атачить только нужный подклип
1.2. Родителський объект разбить на 4 кейфрейма, и после атачча использовать готуандСтоп
1.3. В родительском объекте при атаче выгружать или скрывать ненужные подклипы

2. Использовать централизованное хранение данных
Код AS1/AS2:
function setRegister(object:String,define:String)
{
	if (eval('register.'+object)!='[object Object]') 
		register[object] = new Object();
 
	if (define) 
		register[object] = (Number(define)==define) ? Number(define) : define;
}
 
function getRegister(object:String)
{
	return register[object];	
}
3. А так же имеет ли смысл данная запись
Код AS1/AS2:
function Define()
{	
	this.register = new Object();
 
	setRegister('library');
	setRegister('library.people','people_item');
 
	setRegister('link');
	setRegister('link.container','cont');
	setRegister('link.peoplebox',getRegister('link.container')+'.peoplebox');
	setRegister('link.peopleitem',getRegister('link.peoplebox')+'.items');
}
 
function Init()
{
	Define();
 
	//..........
 
	for (peopls in peopleBox)
	{
		var cast   :MovieClip = eval(getRegister('link.peopleitem'));
		var depth  :Number    = cast.getNextHighestDepth(); 
		var podcast:MovieClip = cast.attachMovie(getRegister('library.people'),'p_'+peopls,depth);
 
			// set property for podcast
			podcast._x = 0;
			podcast._y = cast._height + 10;
			//.......
 
		delete podcast;	
		delete depth;	
		delete cast;
	}
}
Init();
Суть в том что путя к мувиклипам берутся из "реестра" и присваиваются буферному мувику. Или же для ЦПУ проще такой алгоритм
Код AS1/AS2:
for (peopls in peopleBox)
	{
		eval('cont.peoplebox.items').attachMovie('people_item','p_'+peopls,cont.peoplebox.items.getNextHighestDepth());
 
		// set property for item
		eval('cont.peoplebox.items.p_'+peopls)._x = 0;
		eval('cont.peoplebox.items.p_'+peopls)._y = cont.peoplebox.items._height + 10;
		//.......
 
	}
Буду рад, если подскажите еще чё интересное что экономит время ЦПУ на обработку алгоритмов.
__________________
return this...


Последний раз редактировалось AlexCooper; 23.02.2011 в 11:48.