如何在执行时更改转换的时间值?例如,我将对象“cesta”从左向右移动4000毫秒然后由于某种原因我想更改时间值以更快地移动它。
function createCesta()
...
transition.to(cesta, {time = 4000, x = screenW + 110})
...
end
function touchScreen(event)
if event.phase == "began" then
end
if event.phase == "ended" then
--change the time value from here "from 4000 to 2000"
end
end
答案 0 :(得分:2)
http://docs.coronalabs.com/api/library/transition/index.html处的文档表明没有函数调用来执行此操作。因此,您必须取消当前未完成的转换并创建一个新转换。例如,
local trans
local transTime = 4000 -- ms
local transStart
local object
function someEventHandler(event)
transition.cancel(trans)
local remaining = system.getTimer() - transStart - transTime
if remaining > 0 then
trans = transition.to(object, { time = remaining/2, x = ... }
end
end
function spawn()
object = display.newText(...)
trans = transition.to(object, {time = transTime}
transStart = system.getTimer()
end
这显示了一个spawn函数,您可以在其中创建一个显示对象并使其通过转换移动到某个x,以及将在某个时刻调用的事件处理程序。它计算转换中剩余的时间以及是否> 0,创建一个新的过渡,剩余时间的一半,所以"运动加倍#34;速度x。