沒運行,只是看到,cvs.width=this.width;cvs.height=this.height; 能找到寬度和高度嗎?imageObj貌似沒有定義寬度和高度吧! 應該是cvs.width=picwidth;吧!
舉報
0/150
提交
取消
沒運行,只是看到,cvs.width=this.width;cvs.height=this.height; 能找到寬度和高度嗎?imageObj貌似沒有定義寬度和高度吧! 應該是cvs.width=picwidth;吧!
2014-07-07
舉報
2016-04-02
這個地方的代碼,老師寫的有些問題。我來給你解釋一下。
第一,img.src="xxx.jpg"這行是給Img賦值,而img.onload=function(){...}只是給Img加上了一個事件,這兩行代碼的前后順序沒有關系的。因為事件只是給這個元素訂閱了一個事件方法,但是你并沒有觸發這個事件,只有當img.src被賦予了值并加載了這張圖片的時候才會觸發Onload事件。這個應該很好理解。比如你訂閱了某一期的報紙,當這一期報紙被印刷出來后就給你發消息。但是這個時候并沒有完成印刷,難道你叫印刷廠給你發消息有問題嗎。
第二,老師賦值高度和寬度的變量是canvas.getContext("2d")這個地方是錯誤的,應該是給畫布定義寬度高度,也就是canvas。同時寬高值也不應該使用this.height, this.width,因為我們知道這里的this代表的是圖片Img對象,而圖片的寬高并不是我們計算出來的圖片應該顯示的寬度和高度,應該使用前面計算的picWidth. 所以onload函數應該是
2014-07-20
感覺實際上是他講解的邏輯先后的問題,imageObj.src 應該在前面賦值,就好理解了。onload方法是加載的時候的回調函數
2014-07-20
我針對這塊也不是很理解,希望老師能夠出來指點一下