as3中如何通过命名空间来实现方法的“重载”

2019-10-08 13:15:37于海丽
OverLoadByNameSpace.as文件

复制代码
package{
public class OverLoadByNameSpace{
//类内部定义命名空间
public namespace good;//它是一个静态的属性,其uri为:OverLoadByNameSpace/good
public namespace bad;//它是一个静态的属性,其uri为:OverLoadByNameSpace/bad
//得到good namespac
public function getGoodNameSpace():Namespace{
return good;
}
//得到bad namespac
public function getBadNameSpace():Namespace{
return bad;
}
bad function say():void{
trace("bad say");
}
good function say():void{
trace("good say");
}
}
}

动作面板:

复制代码
var ov:OverLoadByNameSpace=new OverLoadByNameSpace();
trace(OverLoadByNameSpace.good);
var g:Namespace=ov.getGoodNameSpace();
ov.g::say();
var b:Namespace=ov.getBadNameSpace();
ov.b::say();