沒運(yùn)行,只是看到,cvs.width=this.width;cvs.height=this.height; 能找到寬度和高度嗎?imageObj貌似沒有定義寬度和高度吧! 應(yīng)該是cvs.width=picwidth;吧!

haorooms
2014-07-07
3 回答
舉報(bào)
0/150
提交
取消
2016-04-02
這個(gè)地方的代碼,老師寫的有些問題。我來給你解釋一下。
第一,img.src="xxx.jpg"這行是給Img賦值,而img.onload=function(){...}只是給Img加上了一個(gè)事件,這兩行代碼的前后順序沒有關(guān)系的。因?yàn)槭录皇墙o這個(gè)元素訂閱了一個(gè)事件方法,但是你并沒有觸發(fā)這個(gè)事件,只有當(dāng)img.src被賦予了值并加載了這張圖片的時(shí)候才會(huì)觸發(fā)Onload事件。這個(gè)應(yīng)該很好理解。比如你訂閱了某一期的報(bào)紙,當(dāng)這一期報(bào)紙被印刷出來后就給你發(fā)消息。但是這個(gè)時(shí)候并沒有完成印刷,難道你叫印刷廠給你發(fā)消息有問題嗎。
第二,老師賦值高度和寬度的變量是canvas.getContext("2d")這個(gè)地方是錯(cuò)誤的,應(yīng)該是給畫布定義寬度高度,也就是canvas。同時(shí)寬高值也不應(yīng)該使用this.height, this.width,因?yàn)槲覀冎肋@里的this代表的是圖片Img對象,而圖片的寬高并不是我們計(jì)算出來的圖片應(yīng)該顯示的寬度和高度,應(yīng)該使用前面計(jì)算的picWidth. 所以onload函數(shù)應(yīng)該是
2014-07-20
感覺實(shí)際上是他講解的邏輯先后的問題,imageObj.src 應(yīng)該在前面賦值,就好理解了。onload方法是加載的時(shí)候的回調(diào)函數(shù)
2014-07-20
我針對這塊也不是很理解,希望老師能夠出來指點(diǎn)一下