【问题标题】:How to transfer parameters to the function in onComplete event (Lua + Corona)如何在 onComplete 事件中将参数传递给函数(Lua + Corona)
【发布时间】:2011-10-06 16:33:07
【问题描述】:

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

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

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

params is:

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

没有“params.onCompleteParams”,但我想将参数传输到我的

不使用全局变量的函数

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    Lua 函数实际上是closures。这意味着它们会捕获在其范围内的函数之外的局部变量的值。

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

    -- save 'parameters' you need to pass as local variables
    local paramToPass = 'hello'
    local paramToPass2 = 'world'
    transition.to(obj, { time = 1000, x = toEnemy.x, y = toEnemy.y,
        -- use an anonymous function as the onComplete handler
        -- it captures the values of any local variables it references
        onComplete = function(obj)
            -- call your original function with your additional parameters...
            onHit(obj, paramToPass, paramToPass2) 
        end
    })
    

    【讨论】:

    • 是的,我知道,但我想在没有这个“保存的'参数'”的情况下这样做。但是现在,在我查看文档之后,在我看来,没有更多的“美”变体了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2013-01-08
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多