不确定我做错了什么,但我正在尝试通过给它X和Y值来模拟点击事件。
这是我的代码:
var clickEvent = document.createEvent('MouseEvent'),
DOMbody = document.getElementsByTagName("body")[0],
testX = targetJoint.depthX * DOMbody.clientWidth,
testY = DOMbody.clientHeight - (targetJoint.depthY * DOMbody.clientHeight);
clickEvent.pageX = testX;
clickEvent.pageY = testY;
if (counter < 5000) {
counter++;
console.log('testX: ' + testX);
console.log('testY: ' + testY);
console.log('click event X: ' + clickEvent.pageX);
console.log('click event Y: ' + clickEvent.pageY);
}
//}
clickEvent.initEvent(eventType, true, true);
node.dispatchEvent(clickEvent);
我从哪里获取testX
和testY
并不重要。它们来自Kinect数据,控制台日志会像这样:
testX: 701.220
testY: 290.693
click event X: 0
click event Y: 0
testX: 704.132
testY: 291.669
click event X: 0
click event Y: 0
testX: 689.852
testY: 284.198
click event X: 0
click event Y: 0
那么,即使我明确设置了正确的值,为什么它还是0呢?编辑:尽管这不是我收到的完全相同的数据,但无法重新创建一个带有kinect数据的fiddle。在fiddle上做了一个简单的示例,至少表明即使我明确设置了它(在某些原因下,
testY
也是0,但是testX
不是,而clickEvent.pageX
是0)。
MouseEvent
,在那里你可以设置clientX和clientY! - Daniel