2

HTML5Canvas要素内の要素をドラッグ可能およびサイズ変更可能にすることは可能ですか。次のコードの動的画像を移動可能にする方法はありますか?

var ctx, imgArray;

function initAll() {
    ctx = document.getElementById("canvas").getContext("2d");
    imgArray = ["http://i46.tinypic.com/nqe1dt.jpg", 
                    "http://i50.tinypic.com/i21phi.jpg", 
                    "http://i49.tinypic.com/1zmfcrq.jpg", 
                    "http://i50.tinypic.com/v8g6mo.jpg", 
                    "http://i49.tinypic.com/21kh7ah.jpg"];
    drawCanvas();
    document.getElementById("checkgroup").onchange = drawCanvas;
}

function drawCanvas() {
   ctx.clearRect(0, 0, 600, 400);
   for(var i=0; i < imgArray.length; ++i) {
      var img = new Image();
      img.posX = (i < 3) ? i*200 : (i-2.5)*200;
      img.posY = (i < 3) ? 0 : 200;
      img.src = imgArray[i];
      img.onload = function() {
        ctx.drawImage(this, this.posX, this.posY, 150, 150);
      } 
   }
}
window.onload = initAll;

プロジェクトはJSBinにあります:http://jsbin.com/welcome/7209/edit

4

1 に答える 1

1

キャンバスのシェイプオブジェクトサポートを提供するKineticJSを使用します。

KineticJSは、その形状にマウスイベントを提供するため、ドラッグのような機能をより簡単に実装できます。

http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-tutorial/

于 2012-08-02T17:17:30.067 に答える