我正在清理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)都不是。如果有人知道这里发生了什么,请告诉我!
答案 0 :(得分:3)
在调用removeEventListener时,您似乎输入错误。
参见:
运行时。 removeEventListener()vs
运行时: removeEventListener()
使用'调用removeEventListener时。' (点),然后运行时引用不会作为removeEventListener()的第一个参数隐式传递。