首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在画布中使用三星S

在画布中使用三星S
EN

Stack Overflow用户
提问于 2015-02-27 11:46:56
回答 3查看 2.5K关注 0票数 4

我正在开发一个web应用程序,用户应该能够在平板电脑上签署文档。我们使用Galaxy 12.2,因为S具有所需的精度.我所使用的画布侦听touch事件来绘制画布。

代码语言:javascript
复制
        canvas.addEventListener('touchstart', handleStart);
        canvas.addEventListener('touchmove' , handleMove);

这里的问题是,如果用户用手指触摸画布,画布就会在那里画线。

有没有办法区分S事件和“正常”触摸事件?

我知道,在Surface 3上,我可以使用Internet Expoler处理笔输入,而不是手指输入。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-08 10:43:19

好的,我自己找到了一个解决方案,效果很好。SPen用radiusXradiusY = 0触发一个ontouch事件。

用手指触发的事件总是半径> 0。所以所有要做的就是添加

代码语言:javascript
复制
if(e.targetTouches[0].radiusX === 0)

在我的画布上绘制的事件处理程序中。

看看这个小提琴手

票数 6
EN

Stack Overflow用户

发布于 2015-04-08 00:10:14

onMouseOver事件靠近屏幕时,screen应该会触发它(取决于browser &screen版本),您可以通过存储全局变量isSPen = false并让全局onMouseOver事件将该变量设置为true来利用这一点。尝试不同的浏览器,看看哪些浏览器会传递事件,通常股票浏览器总是工作得最好。

如果这不起作用,你可能需要把你的网页放在一个应用程序容器里;安卓有一个OnHoverListener,可以拿起doesn。您可以使用全屏WebView并使用Android的JavaScript消息传递API:示例与其通信。

希望我帮了你,祝你好运

票数 2
EN

Stack Overflow用户

发布于 2022-09-15 11:08:26

在12中,finger事件总是有force = 1。

if (e.touches[0].force !== 1)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28764390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档