2012-03-07 180 views
2

如何調整已經在畫布中繪製的圖像大小?html5畫布圖像調整大小

我想這沒有運氣(圖片中展現,但它不調整):

var drawBall = function(mouseX, mouseY){ 
    ballimg = new Image(); 
    ballimg.onload = function(){ 
     ctx.drawImage(ballimg, mouseX-25, mouseY-25); 
     ballimg.height = 5; 
     throwed = true; 

    }; 
    ballimg.src = "ball2.png"; 
}; 

回答

3

你無法改變其在畫布上繪製的對象。

你需要做的是重繪你的對象。

清除舊球所在的環境ctx.clearRect(x,y,x2,y2) 並繪製新尺寸的新球。

如果你想在畫布上動畫的東西。你這樣做的方式是跟蹤所有的對象,併爲每一幀重繪畫布(每一個對象)。

+0

如何提高重繪速度? – dario111cro 2012-03-07 16:55:08

+1

這取決於你想要的。如果你想重繪每一秒左右,你可以使用setInterval函數http://www.w3schools.com/jsref/met_win_setinterval.asp或者你可以手動觸發重繪鼠標點擊事件 – 1b0t 2012-03-07 17:13:32

+0

也最好使用requestAnimationFrame比setInterval獲得更好的性能。這裏是由保羅愛爾蘭人制作的polyfill ... http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ – 2013-07-26 19:54:19