On Nov 18, 12:20 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

Reply via email to