如何让HTML5 JavaScript画布识别来自iphone/ipad的触控/点按?

jsh*_*erk 1 html javascript dom-events ios html5-canvas

我有一个非常简单的HTML5游戏,可以通过常规浏览器按预期工作,但是当从iPhone或iPad上的浏览器访问时,它无法识别click事件或touchstart事件.

原始代码来自这里的教程:http: //www.lostdecadegames.com/how-to-make-a-simple-html5-canvas-game/

我修改了它并添加了一个click事件,它将把笑脸移动到你在画布上点击的任何地方.这个点击事件可以通过鼠标在Mac和Windows浏览器中正常工作:http: //iwebss.com/test

但是,如果您使用iPhone或iPad访问它,则单击事件不起作用.我还尝试为touchstart添加一个额外的监听器,这也不起作用.

这些是我添加到代码中的新侦听器:

    addEventListener("click", mouseClickEvent, false);
    function mouseClickEvent(e) {
        alert("click event");
            mouseClick = true;
        if (e.offsetX) {
              mouseX = e.offsetX;
              mouseY = e.offsetY;
            }  else if(e.layerX) {
              mouseX = e.layerX;
              mouseY = e.layerY;
            }
    }

    addEventListener("touchstart", testEvent, false);
    function testEvent(e) {
        alert("touchstart event");
    }
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么,或者如何阅读iPhone和iPad触摸事件的任何想法?

谢谢

编辑:我也尝试了mousedown事件,这也是行不通的.

决议:我想通了......看下面的答案.

Ani*_*han 5

要附加的处理程序是:

ontouchstart - a finger goes down.
ontouchmove - a finger moves.
ontouchend - a finger goes up.

ongesturestart - a scale or a rotation starts.
ongesturechange - a scale or a rotation.
ongestureend - a scale or a rotation ends.
Run Code Online (Sandbox Code Playgroud)

与其他信息一起几种元的iOS专用的meta标签在这里.