Pav*_*n K 5 html javascript android multi-touch
我正在构建一个 html5 游戏,我想以编程方式将多点触摸事件发送到浏览器。
\n\n我的想法是设置一个节点服务器并将事件转发到网页。是否有任何库已经做到了这一点或者我可以模拟此类事件?
\n\n例如,this page启用了多点触控,但在桌面上您无法交互,因为只有鼠标。如果我可以模拟这些事件,那么我就可以与对象进行交互。我正在寻找这样的东西...任何指针都有帮助...
我尝试使用::
\n\nvar e = document.createEvent(\'UIEvent\');\ne.initUIEvent(\'touchstart\', true, true);\ne.touches = [{pageX: x, pageY: y}];\nRun Code Online (Sandbox Code Playgroud)\n\n我对上述内容没有任何反应,然后我使用了这个
\n\nvar e = document.createEvent(\'TouchEvent\');\ne.touches = [{pageX: x, pageY: y}];\nRun Code Online (Sandbox Code Playgroud)\n\n如果我未处于移动模拟模式,则会收到错误消息,但当我转到移动模拟模式时,我没有得到任何响应
\n\n我也尝试过::this但没有运气
更新
\n\n\n\nvar type = \'move\'; // or start, end\nvar event = document.createEvent(\'TouchEvent\');\nevent.initEvent(\'touch\' + type, true, true); \nevent.constructor.name; // Event (not TouchEvent)\n\nvar point = {x: 10, y: 10 };\nevent.touches = [{\n identifier: Date.now() + i,\n pageX: x,\n pageY: y,\n screenX: x,\n screenY: y,\n clientX: x,\n clientY: y\n}, { identifier: Date.now() + i,\n pageX: point.x,\n pageY: point.y,\n screenX: point.x,\n screenY: point.y,\n clientX: point.x,\n clientY: point.y}]\n\n dispatchEvent(event);\nRun Code Online (Sandbox Code Playgroud)\n\n这有效,但仅在mobile emulation mode
这样会引发触摸事件,但通过触摸real我有以下数据
TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: TouchList\xe2\x80\xa6}\nRun Code Online (Sandbox Code Playgroud)\n\n但是对于自定义事件,changedTouches 元素为 null,是的,我尝试设置e.touches to e.changedTouches
TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: null\xe2\x80\xa6}\nRun Code Online (Sandbox Code Playgroud)\n
var type = 'move'; // or start, end
var event = document.createEvent('Event');
event.initEvent('touch' + type, true, true);
event.constructor.name; // Event (not TouchEvent)
var point = {x: 10, y: 10 };
event.touches = [{
identifier: Date.now() + i,
pageX: x,
pageY: y,
screenX: x,
screenY: y,
clientX: x,
clientY: y
}, { identifier: Date.now() + i,
pageX: point.x,
pageY: point.y,
screenX: point.x,
screenY: point.y,
clientX: point.x,
clientY: point.y}]
dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
这有效,但仅在mobile emulation mode
| 归档时间: |
|
| 查看次数: |
15916 次 |
| 最近记录: |