Обратите внимание, что getDefinitionByName выдаст ошибку, если класс определен в другом (включая дочерний) домен приложения из вызывающего кода.

ionScript3 как получить ссылку на класс объекта?

 bzlm22 февр. 2009 г., 12:01

Ответы на вопрос(2)

что объекты 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 выдаст ошибку, если класс определен в другом (включая дочерний) домен приложения из вызывающего кода.

Решение Вопроса

Вы можете использоватьconstructor свойство если ваш объект был создан из класса (из документов:«Если объект является экземпляром класса, свойство конструктора содержит ссылку на объект класса. Если объект создается с помощью функции конструктора, свойство конструктора содержит ссылку на функцию конструктора».):

var classRef:Class = myObject.constructor as Class;

Или вы можете использоватьflash.utils.getQualifiedClassName() а такжеflash.utils.getDefinitionByName() (не очень хороший способ, поскольку это влечет за собой ненужные манипуляции со строками в реализациях этих библиотечных функций):

var classRef:Class = getDefinitionByName(getQualifiedClassName(myObject)) as Class;

Ваш ответ на вопрос