On Nov 18, 12:19 am, radin <radinj...@gmail.com> wrote: > On Nov 17, 3:27 am, naugem <nau...@gmail.com> wrote: > > > > > Hello, > > > I have a simple web app that consists of a circle moving around. When > > I do a swipe, the app freezes and the circle stops moving, and I have > > to do another swipe/tap to set it in motion again. This only happens > > in Andoid 2.2 devices (2.3 works OK). Does anyone know why this > > happens? How can I avoid this? > > > Here's the code: > > > <!doctype html> > > <html> > > <head> > > <meta charset="UTF-8" /> > > <title>Canvas Test</title> > > <script type="text/javascript" src="touch.js"></script> > > </head> > > <body> > > <section> > > <div> > > <canvas id="canvas" width="400" height="300"> > > This text is displayed if your browser > > does not support HTML5 Canvas. > > </canvas> > > <canvas id="canvas2" width="400" height="300"> > > This text is displayed if your browser > > does not support HTML5 Canvas. > > </canvas> > > </div> > > > <script type="text/javascript"> > > var canvas; > > var ctx; > > var x = 400; > > var y = 300; > > var dx = 2; > > var dy = 4; > > var WIDTH = 400; > > var HEIGHT = 300; > > > function circle(x,y,r) { > > ctx.beginPath(); > > ctx.arc(x, y, r, 0, Math.PI*2, true); > > ctx.fill(); > > } > > > function rect(x,y,w,h) { > > ctx.beginPath(); > > ctx.rect(x,y,w,h); > > ctx.closePath(); > > ctx.fill(); > > } > > > function clear() { > > ctx.clearRect(0, 0, WIDTH, HEIGHT); > > } > > > function init() { > > > > > document.getElementById('canvas').addEventListener('touchstart', > > touchStart); > > > > document.getElementById('canvas').addEventListener('touchmove', > > touchMove); > > > > document.getElementById('canvas').addEventListener('touchend', > > touchEnd); > > > canvas = document.getElementById("canvas"); > > ctx = canvas.getContext("2d"); > > return setInterval(draw, 10); > > } > > > function draw() { > > clear(); > > ctx.fillStyle = "#FAF7F8"; > > rect(0,0,WIDTH,HEIGHT); > > ctx.fillStyle = "#444444"; > > circle(x, y, 10); > > > if (x + dx > WIDTH || x + dx < 0) > > dx = -dx; > > if (y + dy > HEIGHT || y + dy < 0) > > dy = -dy; > > > x += dx; > > y += dy; > > } > > > init(); > > </script> > > </section> > > </body> > > </html> > > > <<--- touch.js --->> > > > var triggerElementID = null; > > var fingerCount = 0; > > var startXPosition = 0; > > var startYPosition = 0; > > var currentXPosition = 0; > > var currentYPosition = 0; > > var minLength = 72; > > var swipeLength = 0; > > var swipeDirection = null; > > > function touchStart(event,passedName) { > > event.preventDefault(); > > fingerCount = event.touches.length; > > > if (fingerCount == 1 ) { > > startXPosition = event.touches[0].pageX; > > startYPosition = event.touches[0].pageY; > > triggerElementID = passedName ? passedName : this.id; > > } else { > > touchCancel(event); > > } > > > } > > > function touchMove(event) { > > event.preventDefault(); > > > if (event.touches.length == 1 ) { > > currentXPosition = event.touches[0].pageX; > > currentYPosition = event.touches[0].pageY; > > } else { > > touchCancel(event); > > } > > > } > > > function touchEnd(event) { > > try { > > event.preventDefault(); > > if ( fingerCount == 1 && currentXPosition != 0 ) { > > currentXPosition = event.touches[0].pageX; > > currentYPosition = event.touches[0].pageY; > > > swipeLength = > > Math.round(Math.sqrt(Math.pow(currentXPosition - > > startXPosition,2) + Math.pow(currentYPosition - startYPosition,2))); > > > if ( swipeLength >= minLength ) { > > caluculateAngle(); > > } > > } > > } finally { > > touchCancel(event); > > } > > > } > > > function touchCancel(event) { > > fingerCount = 0; > > startXPosition = 0; > > startYPosition = 0; > > currentXPosition = 0; > > currentYPosition = 0; > > swipeLength = 0; > > swipeDirection = null; > > triggerElementID = null; > > > } > > > Thanks!
-- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en