2011-09-01 29 views
1

這有點奇怪,但我需要知道特定類的所有子類。假設我有稱爲Shape的基類和3個實現它的子類(Circle,Triangle和Rectangle)。我想這樣的事情:如何獲得一個類的所有子類(在AS3中)

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

返回一個包含圓形,三角形和矩形的向量。

我不幸不能指望每個子類至少一次在該函數被調用之前實例化。

此刻我需要手動添加類到列表中,但這很容易出錯(如果我忘記了),也不像上面提出的函數那樣多功能(因爲我需要爲我希望每個班的子類)。

謝謝!

回答

3

在Flash中沒有內置函數。您可以使用反射來獲取某個類的基類,但不能反過來(請參見flash.utils.describeType())。

+2

這隻會讓你*超*類,不是? – grapefrukt

+0

你是對的,我已經更新了我的答案。 –

2

@Laurent是對的。進一步說,我認爲這是不可能的。如果你有一堂課,你可以告訴它是不是另一個孩子(通過實例化),但是沒有辦法在AS3中列出可用的課程。

相關問題