感动在开始新过程之前(在相同的参数上),您应该取消先前的过渡。通过保存的transition.to
返回值和检查,建立新的转换之前,该变量是否被定义,如果是,则调用它transition.cancel()
做到这一点:
local trans = nil
local function moveMonkey(event)
if event.phase == "began" then
speed = 1500/screenWidth * (mAbs(monkey.x - event.x))
if trans ~= nil then
transition.cancel(trans)
end
trans = transition.to (monkey, {time = speed, x = event.x})
end
end
有管理过渡的其他方式,请参阅。例如,您可能可以标记转换并取消它,因此不需要保留对其的引用(但我现在无法测试,不知道标记为transition.cancel
是否会导致问题 - 我的猜测是简单地被忽略),但标签名称应该是相当独特的:
local function moveMonkey(event)
if event.phase == "began" then
speed = 1500/screenWidth * (mAbs(monkey.x - event.x))
transition.cancel("monkey_trans")
transition.to (monkey, {time = speed, x = event.x, tag="monkey_trans"})
end
end
Upvoted for nice description。提供固定的代码会很棒! – Hassaanz 2014-11-27 21:44:39
@HunterSeeker完成 – Schollii 2014-11-28 02:27:18