首页
学习
活动
专区
圈层
工具
发布

ASCII动画
EN

Stack Overflow用户
提问于 2013-03-18 11:00:27
回答 2查看 2.4K关注 0票数 1

我不确定我的代码中遗漏了什么。我的clearTimeout不能工作了。我一直收到一个错误,说myStopFunction()没有定义。有什么想法吗?我试着重命名它,并检查以确保所有内容都匹配,我只是不确定为什么我一直收到这个该死的错误!

代码语言:javascript
复制
<!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

代码语言: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);
}
EN

回答 2

Stack Overflow用户

发布于 2013-03-18 12:27:15

您对myStopFunction的调用在函数中缺少C。

代码语言:javascript
复制
clearInterval(t); 

是用来清除Javascript计时器的

票数 0
EN

Stack Overflow用户

发布于 2013-03-18 13:59:26

由于函数名中的拼写错误,未调用myStopFunction

function myStopFunction()替换function myStopFuntion()

下面是运行代码:

代码语言:javascript
复制
<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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15469114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档