2010-12-23 49 views
0

我得到這些構造函數的重複聲明,做默認的構造函數獲取類作爲默認....有人知道答案?actiuon腳本3默認構造函數說明

public function GraphNodeStyle() { 
    super(CollapsibleNodeStyleComponent); 
} 

public function GraphNodeStyle(componentClass:Class) { 
    super(componentClass); 
} 

回答

1

在ActionScript中只能有一個構造函數。改爲使用initializeWithComponentClass()方法。

1

您可以使用默認值構造函數,並取決於值調用super用正確的參數:

如果你在分化new GraphNodeStyle(null)new GraphNodeStyle()有趣:

class GraphNodeStyle extends ... { 
    function GraphNodeStyle(componentClass:Class=null) { 
     super((componentClass===null)?CollapsibleNodeStyleComponent:componentClass); 
    } 
} 

否則,你可以使用*作爲類型來接受未定義的值,所以您可以區分這兩種情況,當然,由於您接受任何值,因此您將失去從編譯器進行的類型驗證,而不僅僅是類:

GraphNodeStyle類擴展... {

function GraphNodeStyle(componentClass:*=undefined) { 
     super((componentClass===undefined)?CollapsibleNodeStyleComponent:componentClass); 
    } 
}