-1

我在游戏结束时制作动画。我从各种谷歌拼凑了这段代码。

function showSpider(){
    for (var i=0;i<30;i++)
    {
        var theInterval=setInterval(function() { 
            newX=newX+1;
            if (newX>100){
                newX=100; 
                clearInterval(theInterval);
                document.getElementById('speak').style.visibility="visible";  
            }
            document.getElementById('spideranim').style.webkitTransform = "translate3d        (250px, "+newX+"px,0px)"; 
            document.getElementById('spideranim').style.visibility="visible";  
        }, 100); 
    }
    var temp=(Math.ceil((fliesShown/keysHit)*100));
    document.getElementById("speak").value="You got "+temp+" percent.";     
}

问题是它有效。我试图取出 for 语句,因为间隔不需要它。然后蜘蛛动画不显示。没有出现错误。

为什么我不能取出来?

我也试过用这个代码设置间隔:

function showSpider() {
    theInterval=setInterval("wasteTime()",1000);
    var temp=(Math.ceil((fliesShown/keysHit)*100));
    document.getElementById("speak").value="You got "+temp+" percent accuracy.";        
}

function wasteTime(){   
    newX=newX+1;
    //alert("newX"+newX);
    //alert(document.getElementById('spideranim').style.webkitTransform);
    //alert(document.getElementById('spideranim').style.visiblity);
    if (newX>100){
        newX=100; 
        clearInterval(theInterval);
        document.getElementById('speak').style.visibility="visible";  
    }
    document.getElementById('spideranim').style.webkitTransform = "translate3d    (250px, "+newX+"px,0px)"; 
    document.getElementById('spideranim').style.visibility="visible"; 
}

这不起作用。为什么它不起作用?

4

1 回答 1

0
  • 简短的回答:

newX 永远不会 > 100 因为newX=newX+1;没有被执行。

  • 长答案:

需要更多上下文.. 不能告诉没有其他代码会发生什么 - 但没有for循环, newX 永远不会变得大于 100,因为newX=newX+1;没有执行。

因此, newX 将保持它在循环之前的任何值(例如:)newX=40。结果,document.getElementById('speak').style.visibility="visible";永远不会执行(我盲目地假设那是某种胜利信息)

于 2013-03-30T02:00:16.913 回答