如何重置我的 Javascript 程序
How can I reset my Javascript program?
我正在尝试用javascript制作一种物理程序,但是当它结束时,我想重新加载它。我想在不重新加载页面的情况下执行此操作(如果可能的话..)。计划在按钮中获取javascript代码以重新加载它。
这是我在网站上的尝试:tap.96.lt
希望我足够清楚,谢谢帮忙!
法典:
<html>
<head>
<style>
#my_canvas {
max-width: 98%;
max-height: 98%;
height: auto;
width: auto;
margin:auto;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color:white;
border: black 3px solid;
}
#center {
max-width: 66.5%;
max-height: 95%;
height: auto;
width: auto;
margin:auto;
background:;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
Body {
background-color: slategrey;
}
</style>
</head>
<body>
<script type="text/javascript">
function Canvas(){
var ctx = document.getElementById('my_canvas').getContext('2d');
var snelheid = 20;
var balpic = new Image();
var grondpic = new Image();
balpic.src = "bal.png";
grondpic.src = "grond.png";
function reset() {
}
function blok(){
this.h = 100, this.w = 100, this.x = (ctx.canvas.width*0.5)-(this.w*0.5), this.y = (ctx.canvas.height*0.2)-(this.h*0.5), this.color = "Blue", this.dir = "down", this.valsnel = 0, this.tijd = 0, this.afstand = 0, this.src = balpic;
this.draw = function() {
//plaats berekenen
// kijken of blok de grond raakt
if(grond.y-9<=this.y+this.h){this.dir = "up";};
// kijken of blok niet uit scherm is
if(this.y<=0){this.dir = "down";};
// valsnelheid mag niet negatief zijn
if(this.valsnel<=0){this.dir="down"}
// blok mag niet ver onder de grond komen
if(grond.y+15<=this.y+this.h){this.dir = "stil";};
//valsnelheid berekenen
// tijd berekenen
if(this.dir=="down"){this.tijd = this.tijd+0.2;};
if(this.dir=="up"){this.tijd = this.tijd-0.5};
if(this.dir=="stil"){this.tijd = 0};
this.valsnel = (9.81*this.tijd)+0.0000000001
if(this.dir=="up"){this.y=this.y-this.valsnel};
if(this.dir=="down"){this.y=this.y+this.valsnel};
if(this.dir=="stil"){this.y=this.y}
//tekenen
//ctx.fillStyle = this.color;
//ctx.fillRect(this.x,this.y,this.w,this.h);
ctx.drawImage(this.src,this.x,this.y,this.w,this.h);
//alert("y is "+ this.y +" en tijd is "+ this.tijd +" en valsnelheid is "+ this.valsnel +" en de afstand is "+ this.afstand)
}
}
function grond(){
this.w = ctx.canvas.width, this.x = 0, this.y = ctx.canvas.height*0.8, this.h = ctx.canvas.height*0.2, this.color = "black", this.src = grondpic;
this.draw = function() {
//tekenen
//ctx.fillStyle = this.color;
//ctx.fillRect(this.x,this.y,this.w,this.h);
ctx.drawImage(this.src,this.x,this.y,this.w,this.h);
}
}
// alle functies
var blok = new blok();
var grond = new grond();
function draw() {
ctx.save();
ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);
//draw
grond.draw();
blok.draw();
//draw
ctx.restore();
}
var animateInterval = setInterval(draw,snelheid);
document.addEventListener('mousemove', function(event){
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0],
x = w.innerWidth || e.clientWidth
y = w.innerHeight|| e.clientHeight
var mouseX = event.clientX - ((x-ctx.canvas.width)*0.5)
var mouseY = event.clientY - ((y-ctx.canvas.height)*0.5)
var status = document.getElementById('status');
status.innerHTML = mouseX+" | "+mouseY+" screen width "+x+" "+y;
});
}
window.addEventListener('load', function(event) {
Canvas();
});
</script>
<h2 id="status"></h2>
<input id="clickme" type="button" value="clickme" onclick="canvas()" />
<div id="center">
<canvas id="my_canvas" width="700" height="1000">
Please get a new browser to watch canvas!
</canvas>
</div>
</body>
</html>
-
清除在画布上绘制的间隔。
-
重新启动图形。
对于这两个步骤,用这些行填充您的重置功能。
function reset() { clearInterval(animateInterval); Canvas(); }
-
而是在按钮 html 中定义 onclick 事件,而是在 Canvas() 函数中定义 onclick 事件。否则,您无法在画布函数中调用 reset() 方法。
对于此步骤,在重置功能之后添加此行。
document.getElementById('clickme').onclick = reset;
然后从按钮 html 中删除 onclick 事件定义
<input id="clickme" type="button" value="clickme">
相关文章:
- Rails引擎:使主机应用程序javascript可用于Mounted Engine
- Windows 8应用程序Javascript和SQlite(数据库已锁定)
- 以下 Chrome 扩展程序 JavaScript 代码片段究竟是如何工作的
- 是否有一种从应用程序Javascript代码中自动生成序列图的方法
- <嵌入>或者<对象>标签视频播放错误处理程序-JavaScript
- 未捕获的语法错误:) 在 MVC 应用程序 JavaScript asp.net 参数列表后丢失
- 内联委托事件处理程序 Javascript
- 如何将excel文件导入Web应用程序(javascript/d3/html)
- 目录扫描程序JavaScript HTML
- 检查是否没有Internet连接-弹出-Windows 10应用程序(Javascript)
- 如何在WinRT应用程序(Javascript、C#)中区分Windows Phone 8.1和Windows 8.1
- jQuery Mobile Windows应用商店应用程序:JavaScript运行时错误:无法获取属性'ind
- 移动设备中的引导程序JavaScript问题
- Web应用程序Javascript,用于处理来自iOS设备摄像头的信息流(不是应用程序!)
- 在构建应用程序Javascript MVC的过程中,score/buildjs抛出了一个没有解释的错误
- Iframe应用程序JavaScript SDKpublish对话框错误(代码102)
- 如何在windows8商店应用程序(javascript)中播放youtube视频
- AJAX应用程序JavaScript加载问题
- 为什么获胜't我的引导程序javascript在本地运行
- 用于在纯客户端测试应用程序(javascript/jquery)中维护状态和管理i/o的体系结构