AS3变量声明为null函数

时间:2013-11-20 15:51:24

标签: actionscript-3 function anonymous

我遇到了一个声明为null变量的AS3函数,如:

public var edgeWeights:Function = null;

我不知道如何使用此功能将null更改为其他值(例如,2或3之类的数字)。我认为像cs.edgeWeights = 2这样的东西可能会起作用,但这会产生编译错误,cs.edgeWeights(2);

也是如此

我相信这些是AS3中的匿名函数,我确实对它们进行了一些研究,但无法找到解决这种情况的方法。

3 个答案:

答案 0 :(得分:3)

public var edgeWeights:Function = null;

此表示法表示声明edgeWeights类型的变量Function。在Actionscript Function中是一个对象,可以设置为null

要使用它,您需要将此变量设置为某个功能。例如: edgeWeights = function(a:int,b:int):int { return a+b }edgeWeights = Math.sin

你应该在那里设置什么功能取决于你的具体情况。

答案 1 :(得分:0)

如果您认为声明edgeWeights的班级是Widget

protected var widget:Widget;

protected function createWidget():void {
    widget = new Widget();
    widget.edgeWeights = widgetCallback;
}

//signature would need to match what the Widget
//actually expects this callback to do
protected function widgetCallback():void {
    trace('hi from widget callback');
}

请注意,拥有公共回调变量并且不提供默认实现可能是不好的做法,因此如果您有权访问源代码,则应该修复它。

答案 2 :(得分:0)

给定任何功能:

public function someFunction()
{
    ...
}

你可以创建一个“指针”:this.edgeWeights = someFunction;(是的,没有()

稍后您只需使用:this.edgeWeights();,即可拨打someFunction()