11

我是一名初学者,尝试使用 Kinetic Js 和“phonegap build”开发手机游戏。我遇到了一个我不知道如何解决的问题。我做了一些测试:

  1. 我只是将这里的代码粘贴到我的 index.html 中,并将代码发送到phonegap 构建,它从 html 代码创建了 apk 文件。该应用程序运行良好,但如果您稍微玩一下,您可能会看到一个不受欢迎的行为:整个“舞台”都可以通过触摸点击,当它发生时(实际上并不容易故意这样做,但它发生了)你听到 android 操作系统的标准点击声音,您会看到整个区域突出显示一秒钟。就像您在浏览器中单击链接一样。

  2. 我编译(使用phonegap build)链接在这里的指南针模拟器,它可以工作,但是当你点击指南针的图片时,你会触发点击声音。如果您在浏览器/模拟器上运行它,这是不希望出现的效果。

  3. 我只是在正文中放了一些 png 图像,避免使用 canvas 和 KineticJs。我也没有添加任何脚本。在这种情况下,当您点击时没有点击事件。但是如果我添加

    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    

    (即使没有添加任何脚本)然后再次点击可以产生点击事件。如果我删除了这两行中的任何一行,那么点击事件就会消失。另外,如果我添加

    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.4.min.js"></script>
    

    身体再次可点击产生亮点和点击声音。(我仍然在谈论使用 phonegap build 编译的应用程序)。

我尝试替换<body><body onmousedown="return false;">但没有帮助。我还尝试使用$("#object").click( function () {return false;})画布的 div 元素、图片和正文,也没有帮助。我寻找建议使锚点不可点击以查看它们是否可以应用,但我没有发现任何有用的东西。

有什么建议吗?

更新:另一个没有解决的尝试是:stage.off('tap click mousedown touchstart touchend dbltap');.

4

2 回答 2

3

你试过这个吗?

stage.on('tap touchstart touchend', function() {
  return false;
});

这也可能有帮助:

canvas {
  /*-webkit-tap-highlight-color: transparent; Some users reported this worked for them, although rgba(0,0,0,0); worked for the asker*/
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  outline: none;
}

这是关于 webkit-touch-callout 的快速链接,我不确定它是否会对您的情况有所帮助... http://phonegap-tips.com/articles/essential-phonegap-css-webkit-touch-callout。 html

编辑:看来电话差距的作者建议-webkit-tap-highlight-color: rgba(0, 0, 0, 0);防止链接选择。来源:https ://github.com/phonegap/phonegap-start/blob/master/www/css/index.css

于 2013-07-04T20:23:18.317 回答
0

要禁用点击锚标签,您可以简单地使用一些 css 技巧,例如,您有一个带有类 'notclickable' 的锚标签,然后添加 css,

.notclickable {
    pointer-events: none;
    cursor: default;
    opacity:0.7;
}

现在您可以通过添加此类来禁用锚标记

或者您可以尝试这样做以防止点击,

$('.notclickable').live('click', function(event){
    event.preventDefault();
});

希望这可以帮助。

于 2013-07-05T08:47:50.227 回答