【发布时间】:2012-03-24 00:53:12
【问题描述】:
我正在测试 HTML5 画布并使用 Javascript 为支持触控的设备进行绘制。虽然我让它在 iOS 设备上工作,但我无法让它在 Android 上工作。我已将其缩小到 event.pageX 不返回坐标,而是返回 0 或未定义(基于浏览器)。
我已经在运行 Cyanogen 7.1 的 Opera Mobile 和 Dolphin 浏览器的手机上以及运行标准浏览器的 Galaxy Tab 10.1 (Android 3.1) 上对其进行了测试。
我修改了代码以在显示 event.pageX、event.layerX 和 event.clientX 坐标的 touchstart 事件上显示警报(我知道 clientX 应该只在 iOS 上工作)。
canvas.addEventListener('touchstart', function(e) {
if (readyToDraw){
alert("PageX: "+e.pageX+","+e.pageY+"\n LayerX: "+e.layerX+","+e.layerY+"\n + clientX: "+e.clientX+","+e.clientY);
// prevent the browsers default action!
e.preventDefault();
paint = true;
// Get coordinates
var c = getCoords(e);
addClick(c.x, c.y, false);
}
});
我已经在 iOS 中完成了完整的绘图,但甚至无法让 Android 注册坐标,有什么想法吗?
最终编辑:我解决了这个问题,请参阅接受的答案。
【问题讨论】:
-
见this。如果你仍然不能让它工作,我猜 phoneGap 会工作的。
-
谢谢,这对我帮助很大!
-
@Stu Nice 它正在工作。您能否从您的编辑中给出答案,以便此问题离开“未回答的问题”选项卡。 :) 谢谢!
标签: javascript android touch-event