HTML5画布中的可拖动和可调整大小元素
是否可以使HTML5 Canvas元素内的元素可拖动和可调整大小。有没有什么办法让下面的代码动态图像可移动:HTML5画布中的可拖动和可调整大小元素
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
使用KineticJS提供画布形状对象的支持。
KineticJS将提供其形状的鼠标事件,从而可以更轻松地实现拖放式功能:
http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-tutorial/
是否可以使用easeljs代替。我发现它运作得更好。另外,它使用一个真实的画布对象而不是kineticjs中的一个容器div。 – Hanzel 2012-08-03 10:04:37
画布本身只是一个像素缓冲区,您需要以某种方式提供形状跟踪。你可以手工完成(最多10K行代码),或者使用KineticJS等div垫片。我不知道EaselJS,它在原始问题中没有提及。 – 2012-08-03 10:22:51
我认为,这将是相当复杂的。如果只有这样做的简单方法....... – starbeamrainbowlabs 2012-08-02 09:54:56