Как получить все подклассы класса (в AS3) - PullRequest
1 голос
/ 01 сентября 2011

Это немного странно, но мне нужно знать все подклассы определенного класса.Допустим, у меня есть базовый класс Shape и 3 подкласса (Circle, Triangle и Rectangle), которые его реализуют.Я хотел бы что-то вроде этого:

public function getSubclasses(aClass : Class) : Vector.<Class>
{
    //???
}

, который возвращает вектор, содержащий круг, треугольник и прямоугольник.

Я, к сожалению, не могу рассчитывать на то, что каждый подкласс создается хотя бы один раз перед вызовом этой функции.

На данный момент мне нужно вручную добавить классы всписок, но он подвержен ошибкам (если я забуду), а также не настолько универсален, как могла бы быть предложенная выше функция (поскольку мне нужно было бы создать новый список для каждого класса, для которого я хочу подклассы).

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

Во Flash нет встроенной функции для этого.Вы можете использовать отражение, чтобы получить базовый класс класса, но не наоборот (см. flash.utils.describeType()).

2 голосов
/ 01 сентября 2011

@ Лоран прав.Чтобы пойти дальше, я бы сказал, что это вообще невозможно.Если у вас есть класс, вы можете сказать, является ли он дочерним по отношению к другому (создав его экземпляр), но в AS3 нет способа перечислить доступные классы.

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