Reputation: 28345
I have
public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
And I got on the second constructor:
Multiple constructor definitions found. Constructor may not be defined in code.
So, ActionScript-3 cannot have multiple constructors?
Upvotes: 26
Views: 11493
Reputation: 7061
It's even broader than that. AS3 has no support at all for function overloading.
You can simulate the appearance of multiple constructors with parameter defaults and/or dynamically dispatching the parameters to various init
methods. Alternatively, custom object factories or static creation methods could help.
Upvotes: 12
Reputation: 15717
No you can't have multiple contructor neither the same function with different signature, but you can use default arguments :
public function Shard(x:Number=NaN, y:Number=NaN) {
//...
}
then you can call new Shard()
or new Shard(100)
or new Shard(100, 200)
or you can also use variable arguments:
public function Shard(...args){
if (args.length==0) {
//...
} else {
//...
var firstArg:Object=args[0];
//...
}
}
Upvotes: 33