如何使用 Easeljs 处理 iPhone 上的快速点击?

Posted

技术标签:

【中文标题】如何使用 Easeljs 处理 iPhone 上的快速点击?【英文标题】:How to handle fast clicks on iPhone with Easeljs? 【发布时间】:2015-11-07 16:58:30 【问题描述】:

我用 Easeljs 做了一个简单的游戏。基本上它是一个点击游戏,用户必须快速连续点击一个按钮。

它可以在 android 和任何 PC 浏览器上完美运行。然而,当我在 iPhone 上测试它时,我发现当用户快速点击时,onclick 事件永远不会被触发。当用户缓慢点击时,它工作正常。

我怀疑这与 Safari 的双击手势有关。我试过fastclick,没用。

这是 html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,user-scalable=no">
    <script src="createjs-2015.05.21.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body onload="init();">
    <div class="main">
        <canvas id="testCanvas"  ></canvas>
    </div>
    <script src="app.js"></script>
</body>
</html>

这是我添加按钮的方法:

var button = new createjs.Bitmap(loader.getResult("button"));
var hitArea = new createjs.Shape;
hitArea.graphics.beginFill("#000").drawRect(0, 0, 500, 500);
button.hitArea = hitArea;
button.addEventListener("click", buttonOnClick);

stage.addChild(button);

function buttonOnClick(event) ...

提前致谢!

【问题讨论】:

【参考方案1】:

我加了

createjs.Touch.enable(stage);

并修复它。

【讨论】:

【参考方案2】:

点击事件在 ios 上不起作用,您必须使用 touchstart、touchmove 和 touchend 事件来判断用户是否点击了屏幕。

【讨论】:

这个答案是正确的,但是使用 EaselJS,使用 EaselJS Touch 类内置了对触摸事件的支持(它支持 iOS 风格的“touchstart”事件,以及 MS“pointerdown”式事件)

以上是关于如何使用 Easeljs 处理 iPhone 上的快速点击?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EaselJS 在位图上绘制/绘制线条?

EaselJS 动画虽然基于当前帧的帧

如何使用 EaselJS 绘制多边形?

画布高度由 EaselJS 更改。如何避免这种情况?

如何缓存图像并稍后在 EaselJS 中使用?

在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?