2013-03-18 19 views
0

我不知道我在我的代码中错过了什么。我不能让我的clearTimeout工作...我不断收到一个错误,说myStopFunction()没有定义。有任何想法吗? 我试过将它重命名并检查以确保一切都匹配,我只是不确定为什么我一直得到这个dang错误!ASCII动画

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>ASCII Animations</title> 
<h1> ASCII Animation Editor/Viewer </h1> 
<br><h3> Jordan Keith: Linn-Benton Community College</h3> 
<body> 
<p> Enter the frams below, separated by "=====" 
<input onclick = "playAnimation();" type="button" id= "Play" value = "PLAY" /> 
<input onclick = "myStopFunction();" type="button" id= "Stop" value = "STOP" /></p> 
<textarea id = "frameArea" cols="50" rows="30"></textarea> 

<textarea id = "displayArea" cols="50" rows="30"></textarea> 

<script src="ASCII.js"></script><br> 

</form> 
</div> 
</body> 
</html> 

的JavaScript

function playAnimation() 
{ 
frameStr = document.getElementById("frameArea").value; 

if(frameStr.indexOf("\r\n") !=-1) 
{ 
    frameSeq = frameStr.split("=====\r\n"); 
} 
else 
{ 
    frameSeq = frameStr.split("=====\n"); 
} 

currentFrame = 0; 
showNextFrame(); 
} 
var t; 
function showNextFrame() 
{ 
document.getElementById("displayArea").value = frameSeq[currentFrame] 

currentFrame = (currentFrame+1)% frameSeq.length; 

t = setTimeout("showNextFrame();" , 250); 
} 

function myStopFuntion() 
{ 
clearTimeout(t); 
} 
+5

您的JavaScript说'函数myStopFuntion()'。你在那里错过了一个c。 – adamdunson 2013-03-18 03:02:06

+0

_myStopFunction()没有被定义_ - 有时(我知道它在计算世界中是罕见的)它是最简单的解释,它是真实的;-) – Sepster 2013-03-18 03:16:43

回答

0

您来电myStopFunction中缺少功能的C值。

clearInterval(t); 

就是用来清除定时器的Javascript

0

myStopFunction不获取称为因函数名拼写错误。

function myStopFuntion()替换为function myStopFunction()

这里是正在运行的代码:

<head> 
<script> 
function playAnimation() 
{ 
    frameStr = document.getElementById("frameArea").value; 

    if (frameStr.indexOf("\r\n") != -1) { 
     frameSeq = frameStr.split("=====\r\n"); 
    } else { 
     frameSeq = frameStr.split("=====\n"); 
    } 

    currentFrame = 0; 
    showNextFrame(); 
} 
var t; 

function showNextFrame() 
{ 
    document.getElementById("displayArea").value = frameSeq[currentFrame]; 

    currentFrame = (currentFrame + 1) % frameSeq.length; 

    t = setTimeout(showNextFrame, 250); 

} 

function myStopFunction() 
{ 
    alert("Stopping Now"); 
    clearTimeout(t); 
} 
</script> 
</head> 
<body> 
<form> 
    <input onclick="playAnimation();" type="button" id="Play" value="PLAY" /> 
    <input onclick="myStopFunction();" type="button" id="Stop" value="STOP" /> 
    <textarea id="frameArea" cols="50" rows="30"></textarea> 
    <textarea id="displayArea" cols="50" rows="30"></textarea> 
</form> 
</body> 

JSFIDDLE LINKhttp://jsfiddle.net/52Nvj/4/