javascript - 模拟html5的触摸事件

标签 javascript android html multi-touch

我正在构建一个 html5 游戏,我想以编程方式向浏览器发送多点触摸事件。

我的想法是设置一个节点服务器并将事件转发到网页。有没有图书馆已经这样做了,或者我可以模拟这样的事件吗?

例如this page启用了多点触控,但在桌面上您无法进行交互,因为只有鼠标。如果我可以模拟事件,那么我就可以与对象进行交互。我正在寻找这样的东西...任何指示都有帮助...

我尝试使用::

var e = document.createEvent('UIEvent');
e.initUIEvent('touchstart', true, true);
e.touches = [{pageX: x, pageY: y}];

我没有收到上面的回复,然后我用了这个

var e = document.createEvent('TouchEvent');
e.touches = [{pageX: x, pageY: y}];

如果我不在移动仿真模式下,我会收到错误消息,但当我切换到移动仿真模式时,我没有收到任何响应

我也试过::this没有运气

更新

From here

var type = 'move'; // or start, end
var event = document.createEvent('TouchEvent');
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);

这有效但仅在移动仿真模式

有了这个,一个触摸事件被引发了,但是对于一个真实的触摸,我有以下数据

TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: TouchList…}

但是对于自定义事件,changedTouches 元素为空,是的,我尝试将 e.touches 设置为 e.changedTouches

TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: null…}

最佳答案

From here

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);

这有效但仅在移动仿真模式

关于javascript - 模拟html5的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304317/

相关文章:

html - 清除页脚以防止内容重叠

javascript - TypeError : jQuery(. ..).superfish 不是一个函数。 ul.sf-菜单

javascript - 如何使分页器类在一页内移动(HTML 和 CSS)

javascript - 为谷歌地图 API 添加过期 header

java - 处理共享资源上的信号量冲突的最佳实践是什么?

android - 不在 android 中使用 google play 服务显示 admob 横幅广告

javascript - Angular : HTML5 style URL is rendering with no stylesheet

javascript - 如何使 InkScape SVG 文件填充浏览器窗口并具有交互性?

javascript - 为什么此 Twitter 标准搜索 JSON 响应中没有 'urls' 值?

android - 在 Android 设备 (U8500) 上调试不可用,但代码可以在那里执行