没有300毫秒的延迟点击EaselJS形状

时间:2016-01-31 22:49:55

标签: javascript event-handling createjs

所以我正在尝试使用CreateJS创建游戏,其中包括TweenJS和EaselJS。

以下是我正在使用的代码示例 -

    var shape = new createjs.Shape();
    shape.graphics.beginFill("Red").drawRoundRect(50, 50, 300, 200, 20);

这只是创造了形状。我希望移动设备能够轻松点击它而不会有任何延迟。 我试过了fastclick.js,但它只适用于DOM Elements而不是EaselJS形状。

我使用shape.on('click')方法生成一个简单的点击。我试图做shape.on('touch'),但没有成功。

我正在使用一个名为PhoneGap的应用程序,它将HTML网页转换为应用程序。

我试图寻找许多资源来帮助我解决这个问题,但我还没有找到。有人可以帮我找出我能做些什么来解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

你能提供更多代码吗?如何将事件监听器绑定到createjs-Shape?您可以使用easeljs"在"上绑定它们。方法(http://createjs.com/docs/easeljs/classes/EventDispatcher.html#method_on)。触摸设备不应该是延迟。

 shape.on("click", function(event) {
 // to something
 });

请注意,您可以使用CSS-Property touch-action并将其设置为manipulation以摆脱较新浏览器(> Safari 9.1)中的触摸延迟: https://developer.apple.com/library/prerelease/mac/releasenotes/General/WhatsNewInSafari/Articles/Safari_9_1.html#//apple_ref/doc/uid/TP40014305-CH10-SW8

答案 1 :(得分:0)

实际上非常简单 -

我无法相信我以前没见过这个。 shape.on("click")无效,因为它未在CreateJS Touch API中启用。

你只需要在这里包含一行代码 -

    createjs.Touch.enable(stage);

这可以绑定事件以使它们保持联系。它们在这里定义 - http://www.createjs.com/docs/easeljs/classes/Touch.html