stage:addEventListener(Event.ENTER_FRAME,
function()
Graphic:setRotation(Graphic:getRotation()+ (Timer.delayedCall(math.random(4, 8) ,
function () speed = math.random(1, 30)
return speed
end)
))
end)
Basicallu,我要做的是,随机改变旋转速度,但由于我不希望它每秒都改变,我尝试在Gideros中使用Timer.delayedCall,但是它给出了一个错误{ {1}}。我该如何解决这个问题?
答案 0 :(得分:2)
根据Gideros文档,Timer.delayedCall返回一个'Timer'对象,该对象应该是错误消息所指的表。 http://docs.giderosmobile.com/reference/gideros/Timer/delayedCall
我对Gideros并不熟悉,但我相信你会想要更接近这一点:
stage:addEventListener(Event.ENTER_FRAME,
function()
Timer.delayedCall(math.random(4,8),
function()
Graphic:setRotation( Graphic:getRotation() + math.random(1,30) )
end)
end)
但是,这可能会在每个ENTER_FRAME事件中触发,只是每个更改都会随机延迟。您可能希望使用控制变量,以便只有一个Timer可以挂起:
local timerPending=false
stage:addEventListener(Event.ENTER_FRAME,
function()
if timerPending then return end
timerPending=true
Timer.delayedCall(math.random(4,8),
function()
Graphic:setRotation( Graphic:getRotation() + math.random(1,30) )
timerPending=false
end)
end)