public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
我的第二个构造有:
多重构造定义 发现。代码中可能未定义构造函数 。
那么,ActionScript-3不能有多个构造函数?
public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
我的第二个构造有:
多重构造定义 发现。代码中可能未定义构造函数 。
那么,ActionScript-3不能有多个构造函数?
不,你不能有多个构造器既不与不同的签名相同的功能,但你可以使用默认参数:
public function Shard(x:Number=NaN, y:Number=NaN) {
//...
}
那么你可以打电话new Shard()
或new Shard(100)
或new Shard(100, 200)
,或者你可以也使用可变参数:
public function Shard(...args){
if (args.length==0) {
//...
} else {
//...
var firstArg:Object=args[0];
//...
}
}
它比这更广泛。 AS3根本不支持function overloading。
您可以模拟具有参数默认值的多个构造函数的外观和/或动态分配参数到各种方法。或者,自定义对象工厂或静态创建方法可以提供帮助。
+1。我用静态方法来初始化和返回一个新的实例(类似工厂)。通常,这些方法是在同一个类中定义的,只是为了简化调用代码的接口。在某些情况下,这是一种简单而有效的解决方法(尽管如果你想拥有不同的这些“构造函数”,那么你必须执行名称重组,因为编译器不会为你做) – 2010-08-24 20:06:42
为什么你想要多个构造函数?有些参数是可选的吗? – timrwood 2010-08-24 19:18:08