返回:Timeline
一个新的时间轴实例,包含根补间和时间轴
一、细节
从根时间轴无缝地将所有的补间、时间轴和[可选的]延迟调用转移到新的时间轴,这样您就可以在全局基础上执行高级任务,而不会影响导出后创建的补间/时间轴。
例如,想象一款游戏使用GSAP进行所有动画,在游戏过程中的某个时刻,你想要将所有内容放慢到停止(动画timeScale),同时动画地弹出一个新的窗口:
var tl = gsap.exportRoot();
gsap.to(tl, {duration: 0.5, timeScale: 0});
//这个补间不会受到影响,因为它是在导出之后创建的。
gsap.fromTo(myWindow, {scaleX: 0, scaleY: 0}, {duration: 1, scaleX: 1, scaleY: 1});
然后,当你准备好将timeScale调回1时,你可以重新制作动画。或者,您可以使用exportRoot()来收集所有动画并pause()它们,然后对弹出屏幕(或其他)进行动画处理。然后resume()该实例,甚至reverse()。
您可以根据需要多次exportRoot();它所做的就是将所有松散的补间、时间线和delayedCalls包装到一个时间轴中,而这个时间轴本身被放置在根目录上,所以如果你再次exportRoot(),这个时间轴将被包装到另一个时间轴中,等等。东西可以嵌套到你想要的深度。
注意:完成的补间和时间线将从globalTimeline中删除(用于自动垃圾收集),因此如果在特定补间完成后exportRoot(),它将不会包含在导出中。