[英]Callback to Lua member function
我有一個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 addCallBack(ticker:animate)
不編譯, addCallBack(ticker.animate)
不起作用。 我理解lua中的成員函數有一個隱含的“self”第一個參數。
任何解決方案還是我被迫使用全局功能?
不確定我是否理解你的問題,但如果你的意思是Lua成員函數,你可以使用一個閉包:
av:addCallback(function(yval) ticker:animate(yval) end)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.