问答详情
源自:3-1 倒计时程序的基本架构

Cannot read property 'length' of undefined"

Cannot read property 'length' of undefined"

提问者:月吖阿 2018-03-25 14:48

个回答

  • Oneleven
    2018-05-30 10:09:51

    你的时间小时超过两位数了

  • 性别男爱好女
    2018-04-18 18:23:44

    你可以检查下,你digit文件有没有,正不正确,如果正确就检查下你时间是否获取到了

  • 慕无忌0244622
    2018-04-09 22:24:23

    我也遇到过同样问题了,你解决了吗

  • JackeyT
    2018-03-29 11:12:20

    digit是数字矩阵,老师单独定义在另外一个js文件的,你也可以在本段js中自己定义

  • 慕_斯_用_户
    2018-03-25 14:51:12

    不能读取属性的长度定义


  • 月吖阿
    2018-03-25 14:50:18

    var WIDOW_WIDTH=1024;
    var WIDTH_HEIGHT=768;
    var RADIUS=8;
    var MARGIN_LEFT=30;
    var MARGIN_TOP=60;
    
    const endTime=new Date(2018,4,26,17,39,56);
    var curShowTimeSeconds=0;
    
    window.onload=function(){
    	var canvas =document.getElementById("canvas");
    	var context =canvas.getContext("2d");
    	
    	canvas.width=WIDOW_WIDTH;
    	canvas.height=WIDTH_HEIGHT;
    	
    	curShowTimeSeconds=getCurrentShowTimeSeconds()
    	
    	render(context)
    }
    
    function getCurrentShowTimeSeconds(){
    	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(curShowTimeSeconds/3600);
    	var minutes=parseInt((curShowTimeSeconds=hours*3600)/60);
    	var seconds=curShowTimeSeconds%60;
    	
    	
    	renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),cxt);
    	renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%10),cxt);
    	renderDigit(MARGIN_LEFT+30*(RADIUS+1),MARGIN_TOP,10,cxt);
    	renderDigit(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(minutes/10),cxt);
    	renderDigit(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,parseInt(minutes%10),cxt);
    	renderDigit(MARGIN_LEFT+69*(RADIUS+1),MARGIN_TOP,10,cxt);
    	renderDigit(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(seconds/10),cxt);
    	renderDigit(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,parseInt(seconds%10),cxt)
    }
    
    function renderDigit(x,y,num,cxt){
    	cxt.fillStyle="black";
    	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*(RADIUS+1)+(RADIUS+1),y+i*2*(RADIUS+1)+(RADIUS+1),RADIUS,0,2*Math.PI);
    			cxt.closePath();
    			
    			cxt.fill()
    		}
    }

    [Web浏览器] "Uncaught TypeError: Cannot read property 'length' of undefined" /canvas/js/countdown.js (49)