2010-12-08 27 views
9

J'ai un problème de redessiner, lorsque vous faites défiler la toile ne sera pas redessinée jusqu'à ce que vous relâchez votre contact. Le problème avec cela est que je dépend de "ontouchmove" pour déplacer mon personnage. Donc, jusqu'à ce que le toucher soit libéré, la toile ne sera pas redessinée. Un autre problème est que lorsque vous touchez la toile, elle est mise au point ou activée. Il développe un anneau de mise au point autour de lui. J'ai essayé de mettre à la fois les: focus et: pseudo des frontières actives et des contours à rien. J'ai aussi vu "drawFocusRing" pour le contexte de la toile, mais cela n'a pas semblé résoudre le problème.Toile HTML5 sur les téléphones Android - Redessiner et mettre en évidence les problèmes

Actuellement J'ai testé sur navigateur stock Android 2.2 (myTouch 3G)

Répondre

1

Je ne sais pas Android spécifiquement, mais dans Safari mobile, vous pouvez éviter le défilement en utilisant la méthode event.preventDefault(). Si votre application nécessite un défilement, il est peut-être possible d'implémenter votre propre mécanisme de défilement tout en empêchant le comportement par défaut, peut-être en combinant des événements tactiles avec le positionnement CSS sur un div wrapper de page?

2

Je crois que la bague de mise au point orange est plus en relation avec le WebView que vous utilisez pour voir la toile peut-être? Je sais que j'ai eu un problème similaire avec js dessin sur une toile.

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

Doit résoudre le problème de mise au point.

+0

Cela utilise le navigateur Web par défaut dans android, donc je suis incapable d'effectuer cette action en javascript. – Gorilla3D

+0

Non, en fait le code que j'ai montré est pour Java. Mais si vous envoyez une intention d'utiliser le navigateur web par défaut, ouais je ne pense pas que vous aurez le moindre contrôle. Cependant, vous pouvez créer votre propre WebView définir ces paramètres ci-dessus et l'utiliser à la place. – Nicholi