【发布时间】:2014-02-14 02:22:38
【问题描述】:
我曾经在 AS2 上工作并制作游戏,现在我想学习 AS3 并拥有它所有的好功能(使用 Flash CS IDE)。现在我正在尝试重写一个函数来丢弃它。
function something():void{
//do something
}
function something():void{}
像这样。请帮助或提供一些替代方案,谢谢。
【问题讨论】:
标签: actionscript-3
我曾经在 AS2 上工作并制作游戏,现在我想学习 AS3 并拥有它所有的好功能(使用 Flash CS IDE)。现在我正在尝试重写一个函数来丢弃它。
function something():void{
//do something
}
function something():void{}
像这样。请帮助或提供一些替代方案,谢谢。
【问题讨论】:
标签: actionscript-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.
}
【讨论】: