2012-03-07 24 views
2

イメージをキャンバスに描画する方法は?html5 canvas imageリサイズ

私は(画像が表示されているが、それはサイズを変更しません)運でこれを試してみました:

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

+1

あなたがしたいことに依存します。 1秒ごとに再描画したい場合は、setInterval関数http://www.w3schools.com/jsref/met_win_setinterval.aspを使用するか、手動でmouseclickイベントまたは何かの再描画をトリガーすることができます – 1b0t

+0

また、setIntervalよりもrequestAnimationFrameを使用するのが最適ですより良いパフォーマンスのために。ここにpaul irishによって作られたpolyfillがあります... http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ –