函数中传递数据,做法不当?

我正在使用Corona SDK创建一个Android/iOS应用程序。我试图在一个函数中传递两个不同的参数。函数被这样调用:

function onCollision( self, event )

问题是,当调用函数时,它返回这个错误:attempt to index local "event" a nil value。我知道为什么,我认为是因为逗号的原因。但我已经阅读了文档,这就是你应该这样做的方式,有帮助吗?

点赞
用户2895078
用户2895078

你的函数应该是 function onCollision(event),不需要 self

如果你确实想要向这个函数传递另一个参数,你可以使用闭包来实现,示例如下:

local myParam = 1
Runtime:addEventListener("collision", function(event)
                                      return onCollision(event, myParam)
                                    end)
2014-05-12 10:43:07
用户869951
用户869951

如果你提供一个表对象,并且将你的函数作为表的一部分来引用它,它应该可以工作:

local object = display.newImage( "object.png" )
physics.addBody( object , { ... } )

local function onCollision( self, event )
    ...
end

object.collision = onCollision
object:addEventListener( "collision", object)
2014-05-12 14:35:36