通过表达式自动计算两个标记之间的时间差,并在第一个标记处创建一个倒计时计时器,然后在第二个标记处停止计时器。以下是实现代码示例:
//获取当前合成中的所有标记 var markers = thisComp.markerProperty;
//遍历每个标记 for (var i = 0; i < markers.numKeys; i++) {
//如果当前标记不是最后一个标记 if (i < markers.numKeys - 1) {
//获取当前标记和下一个标记之间的时间差
var duration = markers.key(i + 1).time - markers.key(i).time;
//在当前标记处创建一个计时器,倒计时时间为两个标记之间的时间差
var timer = effect("Timer Control")("Slider");
timer.setValue(duration);
countdown(marker.key(i).time, timer);
}
}
//倒计时函数 function countdown(startTime, timer) {
//检查当前时间是否小于开始时间加倒计时时间 while (time < startTime + timer) {
//计算剩余时间
var timeRemaining = startTime + timer - time;
//将时间格式化为 分钟:秒钟
var minutesRemaining = Math.floor(timeRemaining / 60);
var secondsRemaining = Math.floor(timeRemaining % 60);
var formattedTime = minutesRemaining.toString() + ":" + secondsRemaining.toString();
//更新倒计时控制器
timer.setValue(timeRemaining);
//显示倒计时文本
textLayer = thisComp.layer("Countdown Text");
textLayer.text.sourceText = formattedTime;
//等待一帧
wait(1);
}
//停止倒计时计时器 timer.setValue(0);
}