AE弄了个模板,发现正计时和倒计时不统一,请高手看下,是表达式问题吗? 200

正计时:h=0;m=0;s=0;f=0;f+=timeToFrames();s+=Math.floor(f*comp("MusicVisualizator05").fra... 正计时:
h=0;m=0;s=0;f=0;
f+=timeToFrames();
s+=Math.floor(f*comp("Music Visualizator 05").frameDuration);
m+=Math.floor(s/60);
h+=Math.floor(m/60);
f=Math.round(f%(1/comp("Music Visualizator 05").frameDuration));
s=s%60;
m=m%60;
if(f<10) {f="0"+f}
if(s<10) {s="0"+s}
if(m<10) {m="0"+m}
if(h<10) {h="0"+h}
m+":"+s

倒计时:
framebase = 1.0/comp("Music Visualizator 05").frameDuration;
totalDuration = Math.round(comp("Music Visualizator 05").duration)*framebase;

frameAtTime = timeToFrames(t = time + comp("Music Visualizator 05").displayStartTime, fps = 1.0 / comp("Music Visualizator 05").frameDuration, isDuration = false);
countdownerFrame = totalDuration - frameAtTime;

seconds = Math.round(countdownerFrame / framebase)%60;
seconds < 10 ? secondsString = "0" + seconds : secondsString = "" + seconds;

minutes = Math.round(((countdownerFrame / framebase)/60-0.5)%60);
minutes < 10 ? minutesString = "0" + minutes : minutesString = "" + minutes;

timecodeDisplay = minutesString + ":" + secondsString;
展开
 我来答
jiduhaor
2016-06-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1932
采纳率:66%
帮助的人:668万
展开全部
我试了一下,倒计时“秒”比正计时快了0.5s,在每秒的0.5s处倒计时就动了,这个问题不难看出来,并且这么计时肯定是有错误的,问题很好改,正计时没问题,倒计时问题出在了这句:seconds = Math.round(countdownerFrame / framebase)%60;你只要将:
Math.round(countdownerFrame / framebase)%60的Math.round改为Math.ceil就好,不让它四舍五入,让它向上取值就好了。为了确保安全,你最好也把下面的minutes = Math.round(((countdownerFrame / framebase)/60-0.5)%60);
也改成ceil。
把下面我改好的复制粘上去行了。

倒计时:
framebase = 1.0/comp("Music Visualizator 05").frameDuration;
totalDuration = Math.round(comp("Music Visualizator 05").duration)*framebase;

frameAtTime = timeToFrames(t = time + comp("Music Visualizator 05").displayStartTime, fps = 1.0 / comp("Music Visualizator 05").frameDuration, isDuration = false);
countdownerFrame = totalDuration - frameAtTime;

seconds = Math.ceil(countdownerFrame / framebase)%60;
seconds < 10 ? secondsString = "0" + seconds : secondsString = "" + seconds;

minutes = Math.ceil(((countdownerFrame / framebase)/60-0.5)%60);
minutes < 10 ? minutesString = "0" + minutes : minutesString = "" + minutes;

timecodeDisplay = minutesString + ":" + secondsString;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式