gsap.exportRoot()
返回值:时间轴
一个包含根部补间动画和时间轴的新时间线实例
细节
将所有根时间轴中的补间动画、时间轴以及[可选]延迟调用无缝转移到一个新的时间线中,这样你就可以在看似全局的范围内执行高级任务,而不会影响你之后创建的补间动画/时间轴之后导出的内容。
例如,想象一个游戏使用GSAP进行所有的动画,在游戏的某个阶段,你想将所有动画缓慢停止(通过动画设置timeScale
的值),同时将新的弹窗动画显示出来:
var tl = gsap.exportRoot();
gsap.to(tl, { duration: 0.5, timeScale: 0 });
//this tween isn't affected because it's created after the export.
gsap.fromTo(
myWindow,
{ scaleX: 0, scaleY: 0 },
{ duration: 1, scaleX: 1, scaleY: 1 }
);
然后你可以准备就绪时再次重新播放这些动画,只需对timeScale
回到 1 即可。或者你可以使用exportRoot()
来收集所有动画并pause()
暂停它们,然后运行动画弹窗屏幕(或其他内容)。然后resume()
这个实例或者甚至可以多次reverse()
.
你可以exportRoot()
随意重复使用;它所做的一切只是将所有松散的补间动画、时间轴和delayedCalls包装进一个时间线中,该时间线本身又被添加到根时间线上,因此如果你再次调用exportRoot()
它的话,这个时间线又会被包装到另一个时间线中,以此类推。嵌套深度可以随意加深。
警告
已完成的补间动画和时间线会从全局时间线中移除(实现自动垃圾回收),所以如果你exportRoot()
之后某个特定的补间动画已完成,它就不会被包含在导出内容中。