亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

誰幫我看看我的代碼哪里出錯了,為什么什么也顯示不出來

var window_width = 1024;
var window_height = 768;
var r = 8;
var mt = 60;
var ml = 30;

const endTime = new Date(2014,12,20,15,23,56);
var currentTimeSeconds = 0

window.onload = function(){

? ?var canvas = document.getElementById('canvas');
? ?var context = canvas.getContext("2d");

? ?canvas.width = window_width;
? ?canvas.height = window_height;

? ?currentTimeSeconds = getCts()
? ?render(context)
}

function getCts(){
? ?var curTime = new Date();
? ?var ret = endTime.getTime() - curTime.getTime();
? ?ret = Math.round(ret/1000)

? ?return ret >= 0 ? ret :0;
}
function render(cxt){

? ?var hours = parseInt(currentTimeSeconds/3600);
? ?var minutes = parseInt((currentTimeSeconds-hours*3600)/60);
? ?var seconds = parseInt(currentTimeSeconds%60);

? ?renderDigit(ml,mt,parseInt(hours/10),cxt)
? ?renderDigit(ml+15*(r+1),mt,parseInt(hours%10),cxt)
? ?renderDigit(ml+30*(r+1),mt,10,cxt)
? ?renderDigit(ml+39*(r+1),mt,parseInt(minutes/10),cxt)
? ?renderDigit(ml+54*(r+1),mt,parseInt(minutes%10),cxt)
? ?renderDigit(ml+69*(r+1),mt,10,cxt)
? ?renderDigit(ml+78*(r+1),mt,parseInt(seconds/10),cxt)
? ?renderDigit(ml+93*(r+1),mt,parseInt(seconds%10),cxt)
}

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

? ?cxt.fillStyle = "blue";

? ?for(var i = 0 ; i < digit[num].length ; i++)
? ? ? ?for(var j = 0; j < digit[num].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()
? ? ? ? ? ?}

}
/**
* Created by Administrator on 14-12-16.
*/

正在回答

4 回答

5491356f0001ef7305000240.jpg

549135720001ccea05000240.jpg


在Chrome瀏覽器中,使用開發者工具,查看便一目了然。

數組越界,導致錯誤。

function?renderDigit(x,y,num,cxt){
????//TODO?在此之前判斷?num?是否?[0-9]之間的數字。
}


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

白水向前沖 提問者

能再給講講嗎?什么是數組越界?老師的代碼是這樣寫的 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();
2014-12-17 回復 有任何疑惑可以回復我~

基礎不好,經常問些小白問題,多有麻煩老師了,其實每個問題我都是認真想了才問的,確實是想不明白了,htmlcss,js

0 回復 有任何疑惑可以回復我~

我跟你犯了一樣的錯誤啊?

遍歷循環第二行 for(var j=0;i<digit[num][j].length;j++)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^

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

閆佳奇

length前面少一個[j]
2015-03-11 回復 有任何疑惑可以回復我~

加一個判斷語句,num 屬于0-10時 ?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

誰幫我看看我的代碼哪里出錯了,為什么什么也顯示不出來

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號