首先,可以这样做:
local delay = 1000
local timer = Timer.delayedCall(delay,
function(data)
print(data)
end,
20)
但是,似乎不可能这样做:
function Game:DoSomething(data)
print(data)
end
local timer = Timer.delayedCall(delay,
self.DoSomething,
20)
换句话说,我想在外面定义函数(以便其他人重用)。但是,这似乎不可能。或者我做错了吗?
答案 0 :(得分:1)
如果您想要的是Timer.delayedCall以通用方式调用具有多个参数的方法,您可以这样做:
function Game:DoSomething(data)
print(data)
end
function invokeMethod(args)
local func=table.remove(args,1)
func(unpack(args))
end
local timer = Timer.delayedCall(
delay,
invokeMethod,
{self.DoSomething,self,20}) --self is the instance you are calling
PS:这是我关于SO的第一篇文章,对不起,如果格式不正确...