如何在onComplete事件中向函数传递参数(Lua + Corona)

如何在 onComplete 事件中将参数传递给函数(Lua + Corona SDK)

transition.to(obj,{time = 1000,x = toEnemy.x,y = toEnemy.y,onComplete = onHit} )

----
transition.to(target,params)
----

params 是:

params.time
params.transition
params.delay
params.delta
params.onStart
params.onComplete

没有 "params.onCompleteParams",但我想在不使用全局变量的情况下将参数传递给我的函数

原文链接 https://stackoverflow.com/questions/6716545

点赞
stackoverflow用户221509
stackoverflow用户221509

Lua 函数实际上是 闭包 。这意味着它们捕获了函数外部作用域中的局部变量的值。

通过使用匿名函数作为 onComplete 处理程序,您可以执行以下操作:

-- 保存要传递的“参数”为局部变量
local paramToPass = 'hello'
local paramToPass2 = 'world'
transition.to(obj, { time = 1000, x = toEnemy.x, y = toEnemy.y,
    -- 使用匿名函数作为 onComplete 处理程序
    -- 它会捕获任何引用的局部变量的值
    onComplete = function(obj)
        -- 带上你的额外参数调用你的原始函数...
        onHit(obj, paramToPass, paramToPass2)
    end
})
2011-07-16 11:28:46