Статті, які підпадають під теґ ‘getDefinitionByName’

Прискорення getDefinitionByName(getQualifiedClassName(obj))

понеділок, Листопад 26, 2007

Якщо Ви використовуєте цей вираз:
getDefinitionByName(getQualifiedClassName(obj));

то, для прискорення виконання коду використовуйте слідуючу функцію:

import flash.utils.Proxy;
import flash.utils.getQualifiedClassName;
import flash.utils.getDefinitionByName;
import flash.system.ApplicationDomain;
function getClassDefinition(any:*):Class
{
	var cls:Object = null;
	if(any is Proxy){
		cls = getDefinitionByName(getQualifiedClassName(any));
	} else if(any is String && ApplicationDomain.currentDomain.hasDefinition(any)){
		cls = getDefinitionByName(any);
	} else{
		cls = Object(any).constructor;
	}
	return cls as Class;
}

Приріст швидкості більш ніж в 6 разів ( якщо !(any is Proxy) ).

Дякую Олегові (він же a_[w]) за знайдену швидкісну блоху :)

Далі тест на швидкість

(more…)