js中函数明明已经定义,但还是说找不到,请大神指点 已经定义了init函数,但还是说找不到init函数

<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content... <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Throwing 1 die</title>
<script type="text/javascript" >
var cwidth = 400;//保存画布的宽度
var cheight = 300;//保存画布的高度
var dicex = 50;//保存骰子的水平位置
var dicey = 50;//保存骰子的垂直位置
var dicewidth = 100;//保存骰子的宽度
var diceheight = 100;//保存骰子的高度
var dotrad = 6;//骰子的半径
var ctx;
function init(){
ctx.fillRect(50,50,100,100);
drawface(1);
};
function drawface(n) {
ctx = document.getElementById('c1').getContext('2d');
ctx.lineWidth = 5;//设置骰子的边框的厚度
ctx.clearRect(dicex,dicey,dicewidth,diceheight);//清除原来画的骰子
ctx.strokeRect(dicex,dicey,dicewidth,diceheight);//画骰子
ctx.fillStyle = "#009966";//设置园的颜色
switch(n) {//判断n是几
case 1:
Draw1();
break;
case 2:
Draw2();
break;
}
}
function Draw1(){
var dotx;//保存单个圆点的水平位置
var doty;//保存单个圆点的垂直位置
ctx = document.getElementById('c1').getContext('2d');
dotx = dicex + dicewidth * 0.5;
doty = dicey + diceheight * 0.5;
ctx.beginPath();//开始路径
ctx.arc(dotx,doty,dotrad,0,Math.PI* 2,true);//画圆
ctx.closePath();//结束路径
ctx.fill();//填充圆
}
function Draw2(){
var dotx;
var doty;
ctx = document.getElementById('c1').getContext('2d');
dotx = dicex + dotrad * 3;
doty = dicey + dotrad * 3;
ctx.beginPath();
ctx.arc(dotx,doty,dotrad,0,Math.PI*2,true);
dotx = dicex + dicewidth - dotrad * 3;
doty = dicey + diceheight - dotrad * 3;
ctx.arc(dotx,doty,dotrad,0,Math.PI * 2,true);
ctx.closePath();
ctx.fill();
}
</script>
</head>
<body onload="init();">
<canvas id="c1" width="400" height="300">
your browers
</canvas>
</body>
</html>
展开
 我来答
ispiders
推荐于2017-11-25 · TA获得超过1240个赞
知道小有建树答主
回答量:517
采纳率:80%
帮助的人:206万
展开全部
你这个代码看起来没问题,但是其中有些地方的符号是全角的,所以导致出错,建议重新写吧,在英文半角状态下编写代码
然后就是变量定义的位置有点问题。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Throwing 1 die</title>
<script type="text/javascript" >
var cwidth = 400;//保存画布的宽度
var cheight = 300;//保存画布的高度
var dicex = 50;//保存骰子的水平位置
var dicey = 50;//保存骰子的垂直位置
var dicewidth = 100;//保存骰子的宽度
var diceheight = 100;//保存骰子的高度
var dotrad = 6;//骰子的半径
var ctx;
function init()
{
ctx = document.getElementById('c1').getContext('2d');
ctx.fillRect(50,50,100,100);
drawface(1);
};
function drawface(n)
{
ctx.lineWidth = 5;//设置骰子的边框的厚度
ctx.clearRect(dicex,dicey,dicewidth,diceheight);//清除原来画的骰子
ctx.strokeRect(dicex,dicey,dicewidth,diceheight);//画骰子
ctx.fillStyle = "#009966";//设置园的颜色
switch(n)
{
//判断n是几
case 1: Draw1();
break;
case 2: Draw2();
break;
}
}
function Draw1()
{
var dotx;//保存单个圆点的水平位置
var doty;//保存单个圆点的垂直位置
ctx = document.getElementById('c1').getContext('2d');
dotx = dicex + dicewidth * 0.5;
doty = dicey + diceheight * 0.5;
ctx.beginPath();//开始路径
ctx.arc(dotx,doty,dotrad,0,Math.PI* 2,true);//画圆
ctx.closePath();//结束路径
ctx.fill();//填充圆
}
function Draw2()
{
var dotx;
var doty;ctx = document.getElementById('c1').getContext('2d');
dotx = dicex + dotrad * 3;
doty = dicey + dotrad * 3;
ctx.beginPath();
ctx.arc(dotx,doty,dotrad,0,Math.PI*2,true);
dotx = dicex + dicewidth - dotrad * 3;
doty = dicey + diceheight - dotrad * 3;
ctx.arc(dotx,doty,dotrad,0,Math.PI * 2,true);
ctx.closePath();
ctx.fill();
}
</script>
</head>
<body onload="init();">
<canvas id="c1" width="400" height="300">your browers </canvas>
</body>
</html>
这个是帮你修改后的代码。
赤膊超人
2012-11-26 · 超过25用户采纳过TA的回答
知道答主
回答量:148
采纳率:100%
帮助的人:36.9万
展开全部
最好有报错信息
还有就是把js写在页面最下面。
因为页面上的元素没有加载完全,可能会报对象不存在的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fantasy_wl
2012-11-26 · TA获得超过904个赞
知道小有建树答主
回答量:1287
采纳率:100%
帮助的人:1355万
展开全部
第一:
case 2:后面你可能是粗心大意了,尽然是全角逗号,报错,改成半角的

第二:
fillRect在代码中我没有找到定义的地方,报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式