Стоит отметить, что объекты XML (XML, XMLList) являются исключением из этого (т. Е. (Новый XML () как объект) .constructor как класс == ноль). Я рекомендую вернуться к getDefinitionByName (getQualifiedClassName), когда конструктор не разрешает:
function getClass(obj : Object) : Class
{
var cls : Class = (obj as Class) || (obj.constructor as Class);
if (cls == null)
{
cls = getDefinitionByName(getQualifiedClassName(obj));
}
return cls;
}
Обратите внимание, что getDefinitionByName выдаст ошибку, если класс определен в другом (включая дочерний) домен приложения из вызывающего кода.