问题在于:
我有一个画布,四个(将来会更多,但是4个用于测试...无论如何,无关紧要)可以通过点击它来“加入”画布的图像。
每张图片都可以在画布中多次出现。
到目前为止,弹出工作正常,图像可拖动...但我无法添加一些调整大小或zIndex函数,因为我只能选择添加到画布的最后一个图像。
在一个理想的世界里,我希望通过点击/拖动图片,将其放在画布上,然后“选择”它,这样我就可以将调整大小功能连接到图像。
但是对于图像阵列,我无法正确识别拖动的项目,也无法使用(或不管理使用)选择器。
谢谢。
编辑:一些代码
var imgCpt = 0;
var image = [];
function addDetails(img) {
imgCpt++;
var imageObj = new Image();
imageObj.onload = function() {
image[imgCpt] = new Kinetic.Image({
x: 0,
y: 0,
image: imageObj,
draggable: true,
id:image[imgCpt]
});
image[imgCpt].setX((stage.getWidth()/2) - (image[imgCpt].getWidth()/2));
image[imgCpt].setY((stage.getHeight()/2) - (image[imgCpt].getHeight()/2));
eval(image[imgCpt]).on('click', function() {
alert(eval(imgCpt));
});
layer.add(image[imgCpt]);
stage.add(layer);
};
imageObj.src = 'uploads/'+img;
}
我已经尝试了不同的解决方案:多层,并对其进行操作而不是对图像进行操作,使用填充图像而不是图像的形状,但它总是同样的问题:我无法得到的ID有关元素(而不是最后一个插入元素的id)
此版本适用于数组,但我尝试使用yersterday使用eval()构建图像ID;没有更多的成功。
感谢您的帮助
编辑²:抱歉,但我真的很高兴在这一点上得到一些帮助,即使我认为它与纯粹的KineticJS相关的JS更多。 谢谢。答案 0 :(得分:0)
好的伙计们,刚刚解决了问题:
eval("image["+imgCpt+"].on('click', function() {alert("+imgCpt+");});");
而不是:
eval(image[imgCpt]).on('click', function() {
alert(eval(imgCpt));
});
现在是时候在点击后设置一个真正的动作了。
感谢您的帮助;)