- From: Matt Brubeck <mbrubeck@mozilla.com>
- Date: Tue, 09 Aug 2011 08:48:38 -0700
- To: "Tran, Dzung D" <dzung.d.tran@intel.com>
- CC: Sangwhan Moon <smoon@opera.com>, "public-webevents@w3.org" <public-webevents@w3.org>
I like the idea of having a fairly complete example like this. Following are just some nit-picky comments about the code. > var color = ["red","blue"]; You'll get an exception if there are >2 touch points. > // canvas.addEventListener("touchstart", touchStart, false); > canvas.addEventListener("touchmove", touchMove, false) > canvas.addEventListener("mousemove", mouseMove, false); There's no mouseMove or touchStart function defined. (The touchStart line is commented out, but the mouseMove one is not.) > /* > * draw the square with different color for each touch > */ > for (i=0; i<ev.touches.length; i++) { > draw(oldX[i], oldY[i], "white"); // erase last position You should first erase all squares, then draw all squares. Otherwise you might erase part of a square after it's drawn, if it overlaps with another square. > draw(ev.changedTouches[i].pageX, ev.changedTouches[i].pageY, color[i]); This assumes that changedTouches.length == touches.length, and that the each touch will retain the same index in the list from one event to the next. Neither of these is guaranteed by the spec. > function touchCancel() { > ctx.fillStyle="white"; > ctx.fillRect(0,0,640,960); // clear the canvas > } This function is not actually called anywhere. It's also a little strange that you would do something like this on touchcancel but not touchend, since the spec leaves it mostly implementation-defined when touchcancel happens -- it won't be predictable from one device or browser to the next.
Received on Tuesday, 9 August 2011 15:49:08 UTC