我有一个 HTML5 画布,它显示了许多图像。我使用 KineticJS 库来绘制图像并使它们可拖动,但是,我使用的是该库的本地副本,因为我想对其功能进行一两个更改。
我现在想为库中的函数添加更多功能mousedown
,但我不确定如何做我想做的事,我只是想知道是否有人能指出我正确的方向?
我目前在画布上显示了大约 30 张图像 - 这些图像都存储在 HTML 的隐藏部分中,并已从那里添加到 JS 数组中。我还有另一个 JS 数组,在一个单独的 JS 文件中,其中包含有关图像数组中每个图像的文本描述数组。
文本数组中位置 0 的文本是对图像数组中位置 0 的图像的描述,位置 1 的文本是对位置 1 的图像的描述,等等...
我在画布下方的页面上有 HTML<p></p>
标签。
我现在要做的是添加一个函数,该函数将<p></p>
根据在画布上单击的图像更改该标记中显示的文本......即向mousedown
函数添加一些代码,即
“当mousedown
在图像上检测到a时,找出该图像存储在图像数组中的哪个位置,并更新<p></p>
标签中的文本以显示存储在文本数组中相应位置的文本。
从理论上讲,我会认为这应该是相当简单的,但我只是不知道该怎么做......大概我需要写一个新的JS函数,即
function displayTip(){
document.getElementById('tipsParagraph').innerHTML= tips[0];
}
然后从mousedown
库中的函数中调用该函数。
我不确定的是如何找出被点击的图像在图像数组中的位置,以便我可以将它存储在一个变量中,然后将tips[]
值设置为该变量的值,给出我在tips数组中的位置相同。
我假设我需要mousedown
稍微编辑库中的函数,告诉它找出被点击的图像所在的数组位置,但我不知道该怎么做......有任何想法吗?
该mousedown
函数当前如下所示:
_mousedown: function(evt) {
this._setUserPosition(evt);
var obj = this.getIntersection(this.getUserPosition());
if(obj && obj.shape) {
var shape = obj.shape;
this.clickStart = true;
shape._handleEvent('mousedown', evt);
}
//init stage drag and drop
if(Kinetic.DD && this.attrs.draggable) {
this._initDrag();
}
}
另外,我假设一旦我找到了图像在数组中的存储位置,然后我会想要在函数中添加对我displayTip
的函数的mousedown
调用?