我有一组画布元素,每个元素都负责使用定义的函数与这些元素进行交互。
我有,虽然有问题。
每当我尝试通过 socket.io 传输当前单击的画布元素时,识别 previousInfo 变量似乎存在问题,该变量应该存储光标所在位置的信息。
例子:
canvas[i].onTouchStart = onTouchStartEventFunction;
canvas[i].onTouchMove = onTouchMoveEventFunction;
canvas[i].onTouchEnd = onTouchEndEventFunction;
这将创建画布数组并将每个实例存储在数组中。
功能:
var onTouchStartEventFunction = function(info, index, count, event) {
draw(info.layerX, info.layerY, event.type, info.layerX, info.layerY, this);
socket.emit('touchevent', {
x: info.layerX,
y: info.layerY,
e: event.type,
px: info.layerX,
py: info.layerY,
idx: this
});
}
var onTouchMoveEventFunction = function(info, index, count, previousInfo, event) {
if(previousInfo === null)
{}
else {
document.getElementById("timer").innerHTML = "X: " + info.layerX + " Y: " + info.layerY + " pX:" + previousInfo.layerX + " pY:" + previousInfo.layerY;
draw(info.layerX, info.layerY, event.type, previousInfo.layerX, previousInfo.layerY, this);
socket.emit('touchevent', {
x: info.layerX,
y: info.layerY,
e: event.type,
px: previousInfo.layerX,
py: previousInfo.layerY,
idx: this
});
}
}
var onTouchEndEventFunction = function(info, index, count, event) {
draw(info.layerX, info.layerY, event.type, info.layerX, info.layerY, this);
socket.emit('touchevent', {
x: info.layerX,
y: info.layerY,
e: event.type,
px: info.layerX,
py: info.layerY,
idx: this
});
}
如果我不通过套接字传递 'idx:this' 一切正常,并且 previousInfo 按预期工作。但是,每当我开始使用“idx:this”时,pX 和 pY(previousInfo X 和 Y 坐标)总是相同的,没有变化。
最糟糕的是,每一个实例都会发生这种情况,而且无论我点击哪里,pX 和 pY 点总是保持不变。
那么,鉴于此,谁能指出我做错了什么?
此致