为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我写第二个数字的时候,只出来第一个?

我写第二个数字的时候,只出来第一个;然后我把第一个注释掉,就只出来第二个,第三个数字也不出。  也就是 这个renderDigit 只调用了一次!我看老师的代码没有特殊处理呀!求解

renderDigit(MARGIN_LEFT, MARGIN_TOP, parseInt(hour/10), context);

renderDigit(MARGIN_LEFT+15*(r+1),MARGIN_TOP,parseInt(hour%10),context);

renderDigit(MARGIN_LEFT+30*(r+1),MARGIN_TOP,10,context);

http://img1.sycdn.imooc.com//56b070ee0001a95b10100661.jpg

完整代码:

// JavaScript Document

var WINDOW_WIDTH = 1000;

var WINDOW_HEIGHT = 700;

var MARGIN_LEFT = 100;

var MARGIN_TOP = 50

var r = 5;

window.onload =  function(){

var canvas = document.getElementById('canvas');

var context = canvas.getContext("2d");

canvas.width = WINDOW_WIDTH;

canvas.height = WINDOW_HEIGHT;

render(context);

}


function render(context){

var hour = 14;

var minute = 36;

var second = 59;

renderDigit(MARGIN_LEFT, MARGIN_TOP, parseInt(hour/10), context);

renderDigit(MARGIN_LEFT+15*(r+1),MARGIN_TOP,parseInt(hour%10),context);

renderDigit(MARGIN_LEFT+30*(r+1),MARGIN_TOP,10,context);

}


function renderDigit(x, y, num, cxt){

cxt.fillStyle = "rgb(0,102,153)";

for(var i=0; i<=digit[num].length; i++){

for(var j=0; j<=digit[num][i].length;j++){

if(digit[num][i][j] == 1){

cxt.beginPath();

cxt.arc( x+j*2*(r+1)+(r+1), y+i*2*(r+1)+(r+1), r, 0, 2*Math.PI );

cxt.closePath();

cxt.fill();

}

}

}

}


正在回答

3 回答

renderDigit()函数里的

for(var i=0; i<=digit[num].length; i++){

for(var j=0; j<=digit[num][i].length;j++){

应该是

for(var i=0; i<digit[num].length; i++){

for(var j=0; j<digit[num][i].length;j++){ 不要等号


0 回复 有任何疑惑可以回复我~
#1

jerryguo 提问者

你真仔细,谢谢
2016-02-02 回复 有任何疑惑可以回复我~

不用客气~把代码放在js文件中,f12 chrome调试就可以看到报错信息了

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我写第二个数字的时候,只出来第一个?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信