我正在尝试使用javascript中的一些图像创建一个动画,并且我的代码正常工作,但是在它反向运行图像之后,它会在它再次开始前进之前暂停一下。我想知道如何摆脱暂停?
以下是操作中的代码http://isogashii.com/projects/javascript/ch10/dp10-6.html
HTML
<img id="pin" src="assets/pin0.gif" alt="pin animation" />
的Javascript
var pin = new Array(9);
var curPin = 0;
var x = false;
// caching images
for (var imagesLoaded=0; imagesLoaded < 9; ++imagesLoaded) {
pin[imagesLoaded] = new Image();
pin[imagesLoaded].src = "assets/pin" + imagesLoaded + ".gif";
//starts pinF function when all images are cached
if (imagesLoaded == 8) {
setInterval("pinF()", 120);
}
}
function pinF() {
if (x == true) {
--curPin;
if (curPin == 0) {
x = false;
}
}
if (x == false) {
++curPin;
if (curPin == 8) {
x = true;
}
}
document.getElementById("pin").src = pin[curPin].src;
}
答案 0 :(得分:0)
目前,你做两个&#34;帧&#34; pin1。改变pinF
的逻辑不要那样做。
具体而言,第一次x == true
和curPin == 2
执行第一次if
,将curPin
缩减为1
。
第二次,x == true
仍然是第一个if
将curPin
降低到0
并反转x
。然后,第二个if
将curPin
增加回1
。
答案 1 :(得分:0)
在if语句的x == true
部分中,您应该将curPin设置为1,否则您将复制curPin = 1。
function pinF() {
if (x == true) {
--curPin;
if (curPin == 0) {
curPin = 1;
x = false;
}
}
if (x == false) {
++curPin;
if (curPin == 8) {
x = true;
}
}
document.getElementById("pin").src = pin[curPin].src;
}