1

这是问题所在:

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

此版本适用于数组,但我昨天尝试使用 eval(); 构建图像 id;没有更多的成功。

谢谢您的帮助

EDIT²:抱歉坚持,但我真的很高兴在这一点上得到一些帮助,即使我认为它与 JS 相关而不是纯 KineticJS 相关。谢谢你。

4

1 回答 1

0

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

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

代替 :

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

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

感谢您的帮助 ;)

于 2013-01-31T22:59:25.263 回答