簡體   English   中英

回調Lua成員函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM