javascript-移动浏览器上的多点触控?

我有这个正在玩的浏览器游戏.

但是我也在尝试使其也可以在移动浏览器中使用.但是当同时按下多个按钮时,我似乎无法使其正常工作.

我有这个游戏,您可以左右移动并跳跃. (见下图)

touch buttons in game http://www.userhome.org/mobilegame.png

我的代码如下所示:

function inittouchcontrols() {

$("body").append("<div id='btn_moveleft' keyid='37'></div><div id='btn_moveright' keyid='39'></div><div id='btn_jump' keyid='38'></div>");

    $('body').on('taphold', function (e) {
        e.preventDefault();
    });

    $('body').on('tap', function (e) {
        e.preventDefault();
    });

    $('body').on('vmouseover', function (e) {

        if($(e.target).attr("keyid") != undefined)
            $(e.target).css("background-color", "red");

        window["keyDown" + $(e.target).attr("keyid")]();

        c_key_x = c_key_left + c_key_right;
        c_key_y = c_key_up + c_key_down;

        $("#pushedkeys").html("keys: " + c_key_x + " " + c_key_y);

    });

    $('body').on('vmouseout', function (e) {

        if ($(e.target).attr("keyid") != undefined)
            $(e.target).css("background-color", "aqua");

        window["keyUp" + $(e.target).attr("keyid")]();

        c_key_x = c_key_left + c_key_right;
        c_key_y = c_key_up + c_key_down;


        $("#pushedkeys").html("keys: " + c_key_x + " " + c_key_y);

    });

}

我使用jQuery mobile vmouseover和vmouseout来检测浅绿色div上的按压.但是一次只能按下一个按钮.

所以我的问题是:
有什么办法可以对代码实现多点触控?

解决方法:

您可以使用触摸事件API touchstart,touchmove和touchend(https://developer.mozilla.org/en-US/docs/Web/Guide/Touch_events)

每个对象都将附加到其事件对象上,包括一个touchs集合.

需要注意的一件事是,普通的jQuery事件对象中不包含touch属性,因此您必须使用event.originalEvent来访问它们

$('#ele').on('touchstart', function(e) {
    var touches = e.originalEvent.touches;
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。