html和js代码,哪里不对呢?我想要实现让小人动,可是只有init()中的初始化可以运行,到move(cxt)开始就不对了,求大神帮忙
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5 代码结构示例</title>
<script type="text/javascript" src="jquery.min.js"></script></head><body onLoad="init()">
<!--<audio autoplay loop src="game_ball_bgm.mp3"></audio>--><div style="width:800px;margin:100px auto auto auto;height:480px;background:src(startbg.jpg);">
<canvas id="aa" width="800" height="480" style="border:1px solid #c3c3c3;">
</canvas>
</div><script type="text/javascript" src="aa.js"></script></body>
</html>// JavaScript Document
var t=0;//时间初始化
Cordinate=0;//初始坐标
var forward=2;function move(cxt)
{
cxt.clearRect(0,0,800,480);
cxt.drawImage(bg,0,0,800,480);
cxt.drawImage(people,Cordinate,420,36,60);
setTimeout(move,10);
}function person()
{
if(forward==0)
Cordinate+=0.1;
else if(forward==1)
Cordinate-=0.1;
}
$(document).keydown(function(event)
{
switch(event.which){
case 37:forward=1;break;
case 39:forward=0;break;
default:break;
}
});
function init()
{
var c=document.getElementById("aa");
var cxt=c.getContext("2d");
var imgarr=new Array("startbg.jpg",
"person_goleft_even.png",
"person_goleft_odd.png",
"person_goright_even.png",
"person_goright_odd.png",
"person_stand_even.png",
"person_down_even.png",
"person_down_odd.png")
var bg=new Image();
bg.src=imgarr[0];
cxt.drawImage(bg,0,0,800,480);
var people=new Image();
people.src=imgarr[3];
cxt.drawImage(people,0,420,36,60);
move(cxt);
}
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5 代码结构示例</title>
<script type="text/javascript" src="jquery.min.js"></script></head><body onLoad="init()">
<!--<audio autoplay loop src="game_ball_bgm.mp3"></audio>--><div style="width:800px;margin:100px auto auto auto;height:480px;background:src(startbg.jpg);">
<canvas id="aa" width="800" height="480" style="border:1px solid #c3c3c3;">
</canvas>
</div><script type="text/javascript" src="aa.js"></script></body>
</html>// JavaScript Document
var t=0;//时间初始化
Cordinate=0;//初始坐标
var forward=2;function move(cxt)
{
cxt.clearRect(0,0,800,480);
cxt.drawImage(bg,0,0,800,480);
cxt.drawImage(people,Cordinate,420,36,60);
setTimeout(move,10);
}function person()
{
if(forward==0)
Cordinate+=0.1;
else if(forward==1)
Cordinate-=0.1;
}
$(document).keydown(function(event)
{
switch(event.which){
case 37:forward=1;break;
case 39:forward=0;break;
default:break;
}
});
function init()
{
var c=document.getElementById("aa");
var cxt=c.getContext("2d");
var imgarr=new Array("startbg.jpg",
"person_goleft_even.png",
"person_goleft_odd.png",
"person_goright_even.png",
"person_goright_odd.png",
"person_stand_even.png",
"person_down_even.png",
"person_down_odd.png")
var bg=new Image();
bg.src=imgarr[0];
cxt.drawImage(bg,0,0,800,480);
var people=new Image();
people.src=imgarr[3];
cxt.drawImage(people,0,420,36,60);
move(cxt);
}
解决方案 »
- 为什么不要自动切换"content+i"的内容
- 删除盖层问题。
- 表单提交后,倒退回去编辑,却丢失了一部分数据,咋解决?
- 怎样删除li的style属性
- 请问以下的代码为什么不执行?
- 在离开当前页面和关闭当前窗口前
- 在javascript中,调用java 函数,但函数的参数值是在此javascript中,如何书写?
- 怎样使四周紫色边框宽度相等?
- 如何用javascript修改注册表,急用!!!!!
- jquery animate 可以设置哪些动画属性
- 请问如果有个弹出层 我想第一次点击一个按钮让他显示 然后我点击非他的任何一个元素让他消失 当然点击它本身他不消失 用jquery或者js咋做
- jquery操作问题
是需要传cxt么?你那样第二次执行开始就会出错了,因为没有传参数
没错,你setTimeout函数也必须带参数进去的。
改成
setTimeout(function(){move(cxt);},10);
试试...