Corona:在销毁期间从运行时删除事件侦听器时出错

时间:2016-01-15 21:11:03

标签: mobile lua corona

我正在清理Corona中的一个场景,并尝试在场景的destroy事件中删除事件侦听器。我已经在场景的show事件中添加了事件,如下所示:

function scene:show(event)
    Runtime:addEventListener("enterFrame", onFrame)
    Runtime:addEventListener("touch", onTap)
    Runtime:addEventListener("collision", onCollision)
end

function scene:destroy(event)
    Runtime.removeEventListener("enterFrame", onFrame)
    Runtime.removeEventListener("touch", onTap)
    Runtime:removeEventListener("collision", onCollision)
end

我在destroy事件中得到一个空指针:

?:0: attempt to index field '_super' (a nil value)
stack traceback:
    ?: in function 'removeEventListener'

什么" _超级"它试图访问,为什么它没有?我已经检查过,上面列出的所有功能(onFrame,onTap和onCollision)都不是。如果有人知道这里发生了什么,请告诉我!

1 个答案:

答案 0 :(得分:3)

在调用removeEventListener时,您似乎输入错误。

参见:
运行时 removeEventListener()vs
运行时 removeEventListener()

使用'调用removeEventListener时。' (点),然后运行时引用不会作为removeEventListener()的第一个参数隐式传递。