回调Lua成员函数

时间:2012-07-17 19:52:49

标签: lua luabind

我有一个lua“动画变量”,它有一个动画循环中使用的回调函数。

local av = AnimationVariable(ticker.Position.Y)
...
av:addCallback( ** animation function goes here **)

跳过细节,这个addCallback函数在C ++中定义如下:

void LuaUIAnimationVariable::addCallback(luabind::object callback);

当动画变量更新时,回调就这样执行(我们用一个参数调用该函数):

luabind::call_function<void>(boost::ref(callback), newValue);

我的问题如下:如何在addCallback中使用成员函数?假设我有一个Ticker:animate(ypos)函数,在Ticker实例addCallBack(ticker:animate)上使用addCallback不会编译,addCallBack(ticker.animate)不起作用。我理解lua中的成员函数有一个隐含的“自我”第一个参数。

任何解决方案还是我被迫使用全局函数?

1 个答案:

答案 0 :(得分:4)

不确定我是否理解您的问题,但如果您的意思是Lua成员函数,则可以使用闭包:

av:addCallback(function(yval) ticker:animate(yval) end)
相关问题