我希望我的代碼使用moment.js獲取特定時間,將它與「幀」數相關聯,然後使用它填充網址以獲取序列中的指定圖像。然後該URL將以500ms的速率遍歷一系列圖像URL(它們是小圖像,如20k)。我用我的setInterval函數調用了getframe。我的代碼不能用於兩個設置間隔
但是爲了確保我的幀迭代器不會滯後很多,我還想運行另一個settime,它叫做gettime,它基於新的moment.js時間戳更新幀變量。我每10000ms運行一次。問題是我的代碼不能同時運行這兩個setIntervals。如果我將函數gettime設置爲setinterval,那麼它可以很好地工作,但是當我將它重新放回時會停下來,我無法弄清楚爲什麼?
歡迎關於如何更有效地實現gettime更新的建議,但是當涉及到我的jquery技能時,我非常受限(對不起),因此您必須在解釋爲什麼/如何做什麼時非常詳細工作..
<!DOCTYPE html>
<html>
<head>
<script src="three/js/moment.js"> </script>
<script src="three/js/jquery-2.0.3.js"></script>
<style>
.frames { position:relative; width:500px; height:332px; }
.frames img { position:absolute; left:0; top:0; }
</style>
<head>
<body>
<img id ="frame_placeholder">
<script>
window.onload = $(function(){
setInterval(gettime,10000);
setInterval(getframe,500);
function gettime(){
now = moment().zone('-0500')
if (now.hour() >= 18) {
now = now.subtract('hour', 18).subtract('minute', 30)
} else {
now = now.add('hour', 6).add('minute', 30)
};
var frame = ((now.hour() * 3600) + (now.minute() * 60) + now.second()) * 2;
};
function getframe(){
var framestr=frame.toString();
function pad (str, max)
{
return str.length < max ? pad("0" + str, max) : str;
};
framerun = pad (framestr,5);
var src = "https://s3.amazonaws.com/image"+ framerun +".jpg"
framerun1=parseInt(framerun)
$("#frame_placeholder").attr("src", src);
frame=framerun1+=1;
}
});
</script>
</body>
</html>
你的控制檯說什麼?拋出任何錯誤? gettime是否獨立運行(沒有getframe)? – Pete
框架內沒有定義getframe() –