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

Corona: Error on removing event listeners from runtime during destroy

我正在清理 Corona 中的一个场景,并试图删除该场景的销毁事件中的事件侦听器。我在场景的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

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

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

它试图访问什么“_super”,为什么为零?我已经检查过,上面列出的所有函数(onFrame、onTap 和 onCollision)都不为零。如果有人知道这里发生了什么,请告诉我!

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

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

当您使用“.”调用 removeEventListener 时(点),那么运行时引用不会作为第一个参数隐式传递给 removeEventListener()。