0

我有以下 JS 对象:

var sources = {
        assets: [],
        liabilities: [],
        income: [],
        expenditure: []
    }

如您所见,这个对象包含许多 JS 数组。我使用以下行将 HTML 中隐藏部分中的一些图像添加到这些数组中:

sources.assets[0] = document.getElementById("building").src,
sources.assets[1] = document.getElementById("chair").src,
sources.liabilities[0] = document.getElementById("burger").src,
sources.liabilities[1] = document.getElementById("chips").src,

我现在想要做的是:当mousedown在画布上的这些图像之一上检测到单击(或)时,我想找出该图像属于对象内的哪个数组,并保存该数组的值(即数组名称-资产/负债等)到一个变量。

但是我不确定如何找到它...当检测到单击时,我尝试使用以下行打印图像属性的内容:

console.log("value of variable obj:" + output + ". Shape is " + obj.shape + ". index is " + obj.shape.index);

但这只是在控制台中给了我以下打印输出

value of variable obj:shape: [object Object]; pixel: [object Uint8ClampedArray]; . Shape is [object Object]. index is 7

在控制台中。

我正在使用 KineticJS 库的本地副本将图像绘制到画布上,并且我知道该变量objmousedown在 kineticJS 库中的函数中使用的变量。

用户需要将每个“可拖动”图像拖到其对应的描述框(位于画布上)。

我想知道的是如何找出被点击的图像属于哪个数组,以便我可以将该数组的名称与用户拖动“点击”的图像的名称进行比较图像到:如果它们相同,则用户已将图像拖到正确的描述框,否则,则他们做出了错误的选择。

有谁知道我如何找出点击的图像属于哪个数组?

4

1 回答 1

0

当您创建 kineticJS 图像时,将每个图像的“名称”属性设置为图像类型,如下所示:

var chair = new Kinetic.Image({
      x: 140,
      y: 20,
      name: chair,
      ...more...

Then when an image is selected you use the selected object's .getName() to retrieve "chair".

从那里你做你的数组查找,一切都很好......

因此,您正在使用类似于 CSS 类名的“名称”属性。

于 2013-03-13T19:56:16.607 回答