安卓手机上的HTML5画布 - 重绘和高亮问题

9
我有一个重绘问题,当你滚动时,画布不会重新绘制,直到你松开手指。问题在于我依赖于“ontouchmove”来移动我的角色。因此,在触摸释放之前,画布不会重新绘制。
另一个问题是每当触摸画布时,它就会被聚焦或激活。它会在周围形成一个聚焦环。我尝试将:focus和:active伪类的边框和轮廓设置为空。我还看到了画布上下文的“drawFocusRing”,但这似乎没有解决问题。
目前,我在Android stock browser 2.2(MyTouch 3G)上进行了测试。
2个回答

2

我认为橙色的焦点环可能更与您使用的WebView查看画布有关?我知道我曾经在canvas上绘制js时遇到过类似的问题。

myWebView.setFocusable(false)
myWebView.setFocusableInTouchMode(false)

应该解决焦点问题。


这是在Android中使用默认的Web浏览器,所以我无法在JavaScript中执行此操作。 - Joseph Montanez
不,实际上我展示的代码是用于Java的。但是如果你发送一个意图来使用默认的网络浏览器,我认为你将完全没有任何控制权。然而,你可以创建自己的WebView设置这些设置并使用它代替。 - Nicholi

1

我不太了解Android,但在移动Safari中,您可以使用event.preventDefault()方法来防止滚动。如果您的应用程序需要滚动,那么可能可以在仍然防止默认行为的情况下实现自己的滚动机制,也许是通过将触摸事件与页面包装器div上的CSS定位相结合?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接