我有一个功能,
function tempFeedBack():void
{
trace("called");
}
当我直接写这样的函数名时,和事件监听器工作正常,
thumbClip.addEventListener(MouseEvent.CLICK, tempFeedBack);
但是,当我将函数名称作为字符串给出时,
thumbClip.addEventListener(MouseEvent.CLICK, this["tempFeedBack"]());
不行!它说,TypeError: Error #1006: value is not a function.
有什么想法吗?
答案 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");
}
}
希望可以提供帮助。