持续时间
持续时间(value:Number):[Number | self]
[覆盖] 获取时间轴的持续时间,或者作为设置器使用时调整时间轴的时间比例以适应指定的持续时间。
参数
值: 数值
(默认值 =
NaN
) - 如果省略参数,则返回当前值(getter);如果提供参数,则设置值(setter),并返回实例自身以方便链式调用。
返回值:[数字 | 自身实例]
省略参数将返回当前值(getter),而定义参数将设置值(setter)并返回实例本身以便于链式调用。
细节
获取时间轴的duration
或者,如果用作设置器,则调整时间轴的timeScale
以使其适应指定的持续时间。duration()
与之相同totalDuration()
除非时间轴实例具有非零的repeat
在这种情况下,totalDuration
包含repeat
和repeatDelays
而duration
不包含。
例如,如果一个时间轴具有duration
持续时间为 2 并且重复repeat
次数(repeat)为 3totalDuration
总持续时间(duration)将是 8(一次标准播放加上三次重复等于总共四次循环)。
由于时间轴的duration
是由其内容决定的,因此使用此方法作为设置器将仅仅导致timeScale
被调整以将当前内容适配到指定的duration
,但duration
的值本身将保持不变。
例如,如果时间轴中有总计20秒的补间动画,并且你执行了myTimeline.duration(10)
,则会返回timeScale
将被更改为2。如果你在之后立即再次检查duration
它仍然会返回20,因为从技术上讲,所有子补间动画/时间轴的总时长就是20秒,但在播放时速度会因为timeScale
.
此方法同时具备 getter 和 setter 的功能。省略参数时返回当前值(getter),而传入参数时则设置值(setter)并返回实例自身以便于链式调用,例如:myAnimation.duration(2).play(1);
//gets current duration
var currentDuration = tl.duration();
//adjusts the timeScale of myAnimation so that it fits into exactly 10 seconds on its parent timeline
tl.duration(10);