I have
public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
我接下来遇到了第二个问题:
发现多个构造函数定义。 构造函数可能无法在代码中定义。
所以,ActionScript-3不能有多个构造函数吗?
I have
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完全不支持函数重载。
您可以通过参数默认值和/或动态分派参数到各种init
方法来模拟多个构造函数的外观。或者,自定义对象工厂或静态创建方法也可以帮助实现。