Тест AS3 для типа класса - PullRequest
5 голосов
/ 19 июля 2011

У меня есть функция, которая дает мне тип класса объекта, который я передаю.

public function getClass(obj:Object):Class {
return Class(getDefinitionByName(getQualifiedClassName(obj)));
}

Теперь, если я сделаю это

trace(getClass(panelStack[0]));

Я получаю [класс InfoPanel] в окне вывода, которое является правильным

Но если я сделаю это

trace(getClass(panelStack[0]) is InfoPanel);

Я ошибаюсь, но ожидаю истины.

Может ли кто-нибудь указать, что я здесь делаю не так. Я просто собираюсь вырвать последние части моих волос !!!

Спасибо

Mark

Ответы [ 2 ]

10 голосов
/ 19 июля 2011

Ты почти у цели, просто убери звонок getClass().Попробуйте вместо этого:

trace(panelStack[0] is InfoPanel);

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

6 голосов
/ 19 июля 2011

Вы не должны использовать is, но ==;)

Потому что getClass(panelStack[0]) is Class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...