AS3功能替换

时间:2014-02-14 02:22:39

标签: actionscript-3

我曾经在AS2上工作并制作游戏,现在我想学习AS3并拥有其所有优秀的功能(使用Flash CS IDE)。现在我试图重写一个函数来丢弃它。

function something():void{
    //do something
}
function something():void{}
像这样。请帮助或者只是给出一些替代方案,谢谢。

1 个答案:

答案 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.
}