求AE倒计时表达式

比如按照时间从05:00到04:59这样逐秒归零
2024年11月27日 03:21
有2个网友回答
网友(1):

就是把你给的秒数,换算成多少分多少秒

clockTime = Math.max(clockStart + rate*(time - inPoint),0);
设定从图层的起始点开始倒计时,当倒计时跑到零以下,它会忽略,一直返回 0
( Math.max(a,b) 就是从a,b 中选择较大的那个)

t = Math.floor(clockTime);
切掉小数部分,以整数秒倒计时,5,4,3……这样,不会是 5,4.99,4.98……

t%3600 ,t%60 都是算余数的(一小时3600秒,一分钟60秒)
比如200 ÷ 60 = 3 剩余20,所以 200秒就是3分20秒,写成200%60 = 20 (3不是余数,不管)

rate = -1.1
设定倒计时速度,rate = -1 和现实时间一样,-2 比现实快一倍

clockStart = 5
设定从5秒开始倒计时,如果让它从200秒开始倒计时,改:clockStart = 200
它会从 320 开始倒计时(3分20秒),319,318…这样

但你试试,到3分09秒它不会显示成309,而是显示39,然后38,37……
这是因为padZero功能被去掉了,原版padZero是这样的:

function padZero(n){
if (n<10) return "0" + n else return "" + n
}
判断显示的秒数,如果是个位数,就在前面加个“0”
从5秒开始倒计时(clockStart = 5),会显示成05,04,03……

网友(2):

rateOfSpeed=1;
clockStartTime=(括号内不要直接复制,等号后面用表达式关联器去连接到一个用了“滑块控制”的空对象图层)*60

function addZero(n){
if(n<10)return"0"+n
else return n;
}

clockTimeNumber=Math.floor(clockStartTime-rateOfSpeed*time);

minutes=Math.floor(clockTimeNumber/60);
seconds=clockTimeNumber%60;

if(clockStartTime>0 && timeaddZero(minutes)+"·"+addZero(seconds);
}else{"00·00"};