AS3仍然不支持重载, 所谓重载是指一个方法可以有多种参数形式来调用, 并且可以根据不同的参数形式来执行不同的功能, 比如methodName("abc"), methodName(123), methodName(true) .... 等等
我先说一下我的想法, 写一个类, 比如Overload, 建一个方法判断参数是否符合指定的类型, 然后在需要重载的方法中指定参数为...args, 然后在方法的过程中用Overload的这个方法分别判断参数并执行不同的代码, 比如:
- public function test(...args):void
- {
- if(Overload.matchArgs(args,[int])) trace("overload 1");
- if(Overload.matchArgs(args,[String])) trace("overload 2");
- if(Overload.matchArgs(args,[int,int])) trace("overload 3");
- if(Overload.matchArgs(args,[int,String])) trace("overload 4");
- if(Overload.matchArgs(args,[String,int])) trace("overload 5");
- if(Overload.matchArgs(args,[String,String])) trace("overload 6");
- }
欢迎大家提出更好的想法或者其它的想法。