类型 函数 返回值 时间线 修订 版本 2024.3703 关键词 动画, 补间动画, 时间线, 插值, newTimeline 另请参阅 动画 — 补间动画和时间线 (指南) 补间动画 时间线
创建一个新的 Timeline 对象。它可以包含多个顺序和/或重叠的补间动画,每个补间动画对一个或多个对象执行独特的补间动画。此外,您可以在时间线的跨度内设置时间标记作为
默认情况下,时间线以暂停状态开始。因此,您的选择是
通过将 autoPlay
参数设置为 true
立即播放时间线。在这种情况下,并且仅针对此初始播放事件,您可能指定的任何时间线 onResume
监听器函数都**不会**被触发。
通过在 Timeline 对象上调用 object:resume() 或通过使用对 Timeline 对象的引用调用 animation.resume() 来开始播放它。请注意,这样做将触发时间线的 onResume
监听器函数(如果您指定了一个)。
animation.newTimeline( timelineParams )
表. 一个指定子补间动画、标记和其他时间线参数的表 — 有关详细信息,请参阅下一节。
表. 一个包含子表的表,每个子表指定要包含在时间线中的补间动画。这些表中的每一个都接受以下
startTime
— 可选的 数字,表示补间动画应在时间线进程中开始的毫秒数。默认为 0
(时间线开头)。tween
— 必需的 表,用于配置补间动画。此补间动画的配置应类似于 animation.to(),包含要设置动画的目标对象以及属性和参数。useFrom
— 可选的 布尔值 属性,如果设置为 true
,将使补间动画的行为如同由 animation.from() 声明一样。例如,以下 tweens
表为时间线配置了两个单独的补间动画
tweens = { { startTime=0, tween={ object1, { x=400 }, { time=4000, iterations=5, reflect=true } } }, { startTime=1000, tween={ object1, { y=400 }, { time=4000, easing=easing.outQuad } } } }
表. 一个可选的时间标记表,与时间线关联。这些标记允许您指定命名
name
— 与标记关联的 字符串 名称。此名称可用于在其他命令中引用标记,例如 object:setPosition() 和 animation.setPosition()。此名称应**唯一**(不应在同一时间线内使用重复的标记名称)。time
— 设置标记的时间线进程中的 数字 毫秒数。params
— 一个可选的 表,可以包含自定义信息;此表将传递给 onMarkerPass
监听器函数(详情)。例如,此 markers
表为时间线配置了三个时间标记
markers = { { name="marker_start", time=0 }, -- Start of the timeline { name="marker_2000", time=2000 }, -- 2 seconds into the timeline { name="marker_3000", time=3000 } -- 3 seconds into the timeline }
布尔值. 如果为 true
,则时间线将立即开始播放。默认为 false
。
字符串. 指定时间线标签。动画库可以暂停、恢复、取消、设置位置或更改共享相同标签的时间线的速度比例。
字符串. 分配给时间线的可选标识字符串。可以从任何时间线事件监听器函数中以 obj.id
的形式检索它(如下所示)。
数字. 指定时间线开始播放前的延迟(以毫秒为单位)。默认为 0
。
数字. 调整时间线的相对速度比例。这必须是大于 0
的正数。默认情况下,速度比例为 1
(正常速度)。大于 1
的值将提高速度,而小于 1
的值将降低速度。
布尔值. 如果设置为 true
,则在时间线完成后,所有子补间动画(以及时间线本身)都将被取消。仅当您不打算在第一次播放后再次播放时间线时才应执行此操作。默认为 false
。
侦听器. 通过 object:setPosition() 或 animation.setPosition() 手动更改时间线的播放位置时调用的侦听器函数。此函数将接收对关联的 Timeline 对象的引用作为其唯一参数。
侦听器. 到达/ melewati 时间线内的标记时调用的侦听器函数。此函数将接收一个 表,其中包含对关联的 Timeline 对象 (timeline
) 的引用,以及分配给特定标记的 name
属性和可选的 params
表。
local object1 = display.newRect( 50, 50, 100, 100 ) local function timelineListener( obj ) print( "Timeline completed; ID: " .. obj.id ) end -- Create a timeline object local timelineParams = { tweens = { { startTime=0, tween={ object1, { x=400 }, { time=4000, iterations=5, reflect=true } } }, { startTime=1000, tween={ object1, { y=400 }, { time=4000, easing=easing.outQuad } } } }, markers = { { name="marker_start", time=0 }, { name="marker_2000", time=2000 } }, id = "timeline1", onComplete = timelineListener } local newTimeline = animation.newTimeline( timelineParams ) -- Set the timeline playing newTimeline:resume()