Touch 在具有 2 个画布的 PhoneGap 应用程序中不起作用
Touch is not working in PhoneGap app with 2 canvases
我正在 HTML5 开发 space 射击游戏。我有两个 canvases,如下所示。 id为'bg'的是滚动背景(随机生成的星空),另一个是'fld'用来绘制游戏对象
<html>
<head>
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1,maximum-scale=1,user-scalable=0">
<link href="css/styles.css" rel="stylesheet">
<script src="js/f-shoot.js"></script>
</head>
<body onload='test()'>
<canvas id="fld"></canvas>
<canvas id="bg"></canvas>
</body>
</html>
我的问题是我绑定到 'fld' 的触摸事件在 Phone Gap 应用程序中不起作用。但它在我的 android 手机的 Chrome 浏览器中运行良好。我删除了 bg canvas 并尝试了另一个构建并且它运行良好。但我想在我的游戏中使用多个 canvases。
我使用这些样式(styles.css 文件)将 canvas 一个放在另一个上面
*{
margin:0;
padding:0;
}
html,body
{
width:100%;
height:100%;
}
canvas {
position:absolute;
left:0;
top:0;
display:block;
}
#bg {
background-color:rgb(0,0,20);
z-index:1;
}
#fld{
z-index:10;
}
我附上我的活动如下
var space = document.getElementById('fld');
space.ontouchstart = function(event) {
....
};
space.ontouchend = function(event) {
....
};
space.ontouchmove = function(event) {
....
};
当我使用单个 canvas 时,事件绑定没有问题。但是当我在 Phone Gap 应用程序中包含背景 canvas 和 运行 时,它不会响应触摸事件。
我在这里做错了什么?
在我将以下 eventListener 添加到 document.body 后它起作用了。
document.body.addEventListener('touchstart',function(event) {
event.preventDefault();
});
我正在 HTML5 开发 space 射击游戏。我有两个 canvases,如下所示。 id为'bg'的是滚动背景(随机生成的星空),另一个是'fld'用来绘制游戏对象
<html>
<head>
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1,maximum-scale=1,user-scalable=0">
<link href="css/styles.css" rel="stylesheet">
<script src="js/f-shoot.js"></script>
</head>
<body onload='test()'>
<canvas id="fld"></canvas>
<canvas id="bg"></canvas>
</body>
</html>
我的问题是我绑定到 'fld' 的触摸事件在 Phone Gap 应用程序中不起作用。但它在我的 android 手机的 Chrome 浏览器中运行良好。我删除了 bg canvas 并尝试了另一个构建并且它运行良好。但我想在我的游戏中使用多个 canvases。
我使用这些样式(styles.css 文件)将 canvas 一个放在另一个上面
*{
margin:0;
padding:0;
}
html,body
{
width:100%;
height:100%;
}
canvas {
position:absolute;
left:0;
top:0;
display:block;
}
#bg {
background-color:rgb(0,0,20);
z-index:1;
}
#fld{
z-index:10;
}
我附上我的活动如下
var space = document.getElementById('fld');
space.ontouchstart = function(event) {
....
};
space.ontouchend = function(event) {
....
};
space.ontouchmove = function(event) {
....
};
当我使用单个 canvas 时,事件绑定没有问题。但是当我在 Phone Gap 应用程序中包含背景 canvas 和 运行 时,它不会响应触摸事件。
我在这里做错了什么?
在我将以下 eventListener 添加到 document.body 后它起作用了。
document.body.addEventListener('touchstart',function(event) {
event.preventDefault();
});