在销毁期间从运行时中移除事件监听器时出现 Corona 错误。

我正在清理 Corona 中的场景,并尝试在场景的销毁事件中移除事件监听器。我已经在场景的显示事件中添加了事件,如下所示:

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",为什么它是 nil?我已经检查过所有上面列出的函数(onFrame、onTap 和 onCollision)都不是 nil。如果有人知道这里发生了什么,请让我知道!

点赞
用户5675002
用户5675002

似乎在调用 removeEventListener 时你打错了字。

请看:

Runtime . removeEventListener() vs

Runtime : removeEventListener()

如果你使用了 '.'(点号)调用 removeEventListener,则 runtime 引用不会隐式地作为第一个参数传递给 removeEventListener()。

2016-01-15 21:53:02