我得到这些构造函数的重复声明,默认构造函数是否将class作为默认值....有人知道答案吗?
public function GraphNodeStyle() {
super(CollapsibleNodeStyleComponent);
}
public function GraphNodeStyle(componentClass:Class) {
super(componentClass);
}
答案 0 :(得分:1)
在ActionScript中只能有一个构造函数。改为使用initializeWithComponentClass()
方法。
答案 1 :(得分: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);
}
}