我曾经在AS2上工作并制作游戏,现在我想学习AS3并拥有其所有优秀的功能(使用Flash CS IDE)。现在我试图重写一个函数来丢弃它。
function something():void{
//do something
}
function something():void{}
像这样。请帮助或者只是给出一些替代方案,谢谢。
答案 0 :(得分:3)
你要做的事情是非常不合逻辑的 - 一个函数应该定义一次并且总是存在。不仅如此,它应该肯定总是以相同的方式运行,特别是考虑到AS3不支持重载。
AS3引入了OOP范例供您使用 - 这进一步强调了上述内容 - 您应该创建定义固定属性和方法集合的类。这样,应用程序中每个类的意图都很明确,而您希望能够做的事情不会改变。
如果您绝对必须能够删除功能,您可以将它们分配给动态对象,并使用delete
关键字删除或重新定义它们:
var methods:Object = {
something: function():void
{
trace('Still here.');
}
};
methods.something(); // Still here.
delete methods.something;
methods.something(); // TypeError: something is not a function.
methods.something = function():void
{
// Define new function.
}
或者将一个匿名函数分配给Function类型的变量,从这里你可以设置对null
的引用:
var something:Function = function():void
{
trace("Still here.");
}
something(); // Still here.
something = null;
something(); // TypeError: value is not a function.
something = function():void
{
// Define new function.
}