我正在使用 KineticJS,到目前为止,这是一次很棒的体验。我的一个问题是关于拖动。我将此示例中的图像设置为“可拖动:true”,但在我第一次拖动它后,它无法再次移动。
var stage = new Kinetic.Stage({
container: 'container',
width: 2754,
height: 1836
});
var layer = new Kinetic.Layer();
var scale = '0.16339869281045751633986928104575';
var imageObj = new Image();
imageObj.onload = function () {
var img = new Kinetic.Image({
x: 0,
y: 0,
height:612,
width:612,
image: imageObj,
draggable: true,
dragBoundFunc: function (pos) {
console.log(img.getAttrs());
return {
x: Math.floor((pos.x/scale)/306)*306,
y: Math.floor((pos.y/scale)/306)*306
};
}
});
// add the shape to the layer
layer.add(img);
// add the layer to the stage
stage.add(layer);
};
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/yoda.jpg';
任何帮助表示赞赏。对于额外的功劳,您可以建议使拖动更平滑的方法。
谢谢!
编辑:我注意到在初始时间拖动图像后,当用户尝试拖动图像时不再调用dragBoundFunc
如果我将图像拖回 0,0 但没有其他时间,它也可以工作