操作脚本3:将String变量作为函数调用

时间:2015-04-03 14:25:31

标签: actionscript-3 actionscript

我有一个功能,

function tempFeedBack():void
    {
        trace("called");
    }
当我直接写这样的函数名时,

和事件监听器工作正常,

thumbClip.addEventListener(MouseEvent.CLICK, tempFeedBack);

但是,当我将函数名称作为字符串给出时,

thumbClip.addEventListener(MouseEvent.CLICK, this["tempFeedBack"]());

不行!它说,TypeError: Error #1006: value is not a function.

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您收到该错误是因为this["tempFeedBack"]()不是Function对象,这是listener函数的addEventListener()参数,此外,它没什么,因为您的{ {1}}函数不能返回任何值。

要更加明白,你所写的内容相当于:

tempFeedBack()

在这里,您可以看到您已将thumbClip.addEventListener(MouseEvent.CLICK, tempFeedBack()); 函数的返回值作为tempFeedBack()参数传递,该参数应为listener个对象,但您的Function可以返回没有 !

所以,只是为了解释更多,如果你想要你所写的东西,你应该做这样的事情:

tempFeedBack()

但我认为你的意思是:

function tempFeedBack():Function 
{
    return function():void { 
            trace("called");
        }
}

希望可以提供帮助。