我有一个基于摇动事件的淡入/淡出功能,但是如果你在功能期间再次摇动它,它会叠加这些功能。我想要的是等到功能结束(5秒)然后再次收听。代码是什么?
这就是我目前的情况:
function fadeOut ( event )
transition.to(yes1, {time=2000, alpha=0})
transition.to(yes2, {time=2000, alpha=0})
...
transition.to(funny3, {time=2000, alpha=0})
transition.to(funny4, {time=2000, alpha=0})
timer.performWithDelay(2000, onShakeComplete)
end
responses = {yes1, yes2, yes3, yes4, yes5, yes6, yes7, yes8, yes9, yes10,
no1, no2, no3, no4, no5, maybe1, maybe2, maybe3, maybe4, maybe5,
funny1, funny2, funny3, funny4}
local shaking = false
-- reset shaking flag after a shake is completed
local function onShakeComplete()
shaking = false
end
local function onShake (event)
if event.isShake and not shaking then
shaking = true
local object = responses[math.random(1,20)]
transition.to(object, {time=2000, alpha=1})
timer.performWithDelay(4000, fadeOut)
end
end
Runtime:addEventListener("accelerometer", onShake)
答案 0 :(得分:3)
-- true if we have a shake happening right now
local shaking = false
-- reset shaking flag after a shake is completed
local function onShakeComplete()
shaking = false
end
local function onShake (event)
if event.isShake and not shaking then
local object = responses[math.random(1,20)]
transition.to(object, {time=2000, alpha=1})
timer.performWithDelay(4000, fadeOut)
timer.performWithDelay(4000, onShakeComplete)
shaking = true
end
end