为什么我写第二个数字的时候,只出来第一个?
我写第二个数字的时候,只出来第一个;然后我把第一个注释掉,就只出来第二个,第三个数字也不出。 也就是 这个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);
完整代码:
// 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();
}
}
}
}