KineticJS:获取图像数组ID

时间:2013-01-29 22:43:39

标签: image html5 canvas draggable kineticjs

问题在于:

我有一个画布,四个(将来会更多,但是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更多。 谢谢。

1 个答案:

答案 0 :(得分:0)

好的伙计们,刚刚解决了问题:

eval("image["+imgCpt+"].on('click', function() {alert("+imgCpt+");});");

而不是:

eval(image[imgCpt]).on('click', function() {
alert(eval(imgCpt));
});

现在是时候在点击后设置一个真正的动作了。

感谢您的帮助;)