Mike Chambers, responding to this piece at Roughly Drafted, shows that the only mouse events Flash Player doesn’t have on touchscreens are those for right and middle buttons, and scroll wheels. Hover and mousemove events do work. The problem, though, for a hypothetical Flash plugin that renders pages within web pages (as on traditional desktop browsers), is how to tell whether a tap-and-drag within a Flash element is supposed to scroll the entire web page or be passed as a mouse movement event to the Flash element. It can’t do both, and it can’t read the user’s mind. (You can see these problems with straight HTML in MobileSafari today — it’s cumbersome to scroll a
<textarea> field within a web page because a single finger tap-and-drag within the
<textarea> control still scrolls the entire page, not the text content inside the control.) This is one reason why, when you play a movie embedded in a web page on MobileSafari, it always switches you to a full-screen movie player view. Perhaps you could do that with a mobile browser Flash plugin, but except for Flash content that was designed to fit on a small screen, how do you allow the user to both scroll/pan the content and pass mousemove and hover events to the underlying content? I’m interested to see how the upcoming Android Flash Player solves this.
It’s not so much that you can’t use mouse-centric UIs on a touchscreen, but that they’re inherently awkward.
★ Monday, 22 February 2010