TimelineMax.exportRoot()
优质
小牛编辑
126浏览
2023-12-01
TimelineMax.exportRoot( vars:Object, omitDelayedCalls:Boolean ) : TimelineLite
将全部动画、时间轴、函数(可选)从根时间轴导出至新的时间轴便于执行一些高级操作,并且不影响导出后创建的动画/时间轴。
例如你使用tweenmax制作了一个游戏,你想让其在某个时刻逐渐减速至零(将timeScale减至0),然后创建一个弹出框动画:
var tl = TimelineLite.exportRoot(); //将全部动画导出至tl
TweenLite.to(tl, 0.5, {timeScale:0}); //将tl逐渐减速
//这个动画不会受到影响,因为其是导出后创建的
TweenLite.fromTo(myWindow, 1, {scaleX:0, scaleY:0}, {scaleX:1, scaleY:1});
导出的时间轴同时也属于根时间轴,你可以多次导出根时间轴,但是最好能规划避免混乱。
//导出之前先判断之前的导出是否还存在
if (allAnimations) {
var animations = allAnimations.getChildren(),
startTime = allAnimations.startTime(),
root = allAnimations.timeline,
l = animations.length,
i;
for (i = 0; i < l; i++) {
root.add(animations[i], animations[i].startTime() + startTime);
}
allAnimations.kill();
}
//now do the export
allAnimations = TimelineLite.exportRoot();
TimelineMax.exportRoot()适用于TimelineMaxTimelineLite
TimelineMax.exportRoot()的参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
vars | Object | 否 | (default = null) 传递给时间轴的参数,如delay,onUpdate, onComplete等,还可使用useFrames来决定是导出基于时间的时间轴还是基于帧的时间轴。 |
omitDelayedCalls | Boolean | 否 | (default = true)将延迟调用保留在根时间轴而不是新时间轴,如果你pause()或者调节了timeScale,或reverse(),他们将不受影响。 |
TimelineMax.exportRoot() 示例
TimelineMax.exportRoot()返回值
TimelineMax.exportRoot()的补充说明
由于根时间轴有自动清理机制(autoRemoveChildren
),因此有些动画和时间轴你可能不能导出。