為什么我寫第二個數字的時候,只出來第一個?
我寫第二個數字的時候,只出來第一個;然后我把第一個注釋掉,就只出來第二個,第三個數字也不出。 ?也就是 這個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();
}
}
}
}
2016-02-02
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++){ 不要等號
2016-02-03
不用客氣~把代碼放在js文件中,f12 chrome調試就可以看到報錯信息了