2013-09-28 60 views
0

我正在嘗試繪製裁剪圖像並將其繪製到畫布上,但是在瀏覽器中運行時畫布保持白色。沒有錯誤出現。drawImage not drawing

var imgSprite = new Image(); 
imgSprite.src = 'sprite.png'; 
imgSprite.addEventListener('load', init, false); 

function init(){ 
    drawBg(); 

} 
function drawBg() { 
    var sourceX =0; 
    var sourceY =0; 
    var sourceWidth =800; 
    var sourceHeight =500; 
    var destWidth =800; 
    var destHeight =500; 
    var destX =0; 
    var destY =0; 
    //ctxBg.clearRect(0, 0, gameWidth, gameHeight); 
    ctxBg.drawImage(imgSprite, sourceX,sourceY,sourceWidth,sourceHeight, 
     destWidth,destHeight,destX,destY); 
} 
+0

TypeError是什麼行? –

回答

1

最後四個參數的drawImage是錯誤的順序。它應該是:

ctxBg.drawImage(imgSprite, sourceX,sourceY,sourceWidth,sourceHeight, 
     destX,destY,destWidth,destHeight); // x,y before width,height 

請參閱CanvasRenderingContext2D drawImage()瞭解所有重載和交互示例。

1

將參數設置不匹配任何可用的參數設置爲drawImage()

ctxBg.drawImage(imgSprite, 0, 0, gameWidth, gameHeight); 

演示:Fiddle

+0

我正在按照使用drawImage的w3設置的參數,我認爲在我的代碼結尾的額外的0,0參數告訴程序開始從畫布0,0繪製。我試圖剪切我的精靈表的一部分,只將我的精靈表的那一部分繪製到我的畫布上。我該怎麼做呢? – rrcm

+0

@rrcm你想要使用的圖像的起始座標是什麼 –

+0

@rrcm看看[這個例子](http://www.html5canvastutorials.com/tutorials/html5-canvas-image-crop/)如何裁剪圖片 –