Why wouldn't it?
Let me find that article... be back ...
February 20th, 2010
Daniel Eran Dilger
Morgan Adams, an interactive content developer who knows a lot about building Flash, wrote in with an interesting perspective on Flash and the iPad. The remainder of this piece is his comments on the subject.
Inside Apples iPad: Adobe Flash
Im biased. Im a full-time Flash developer and Id love to get paid to make Flash sites for iPad. I want that to make sensebut it doesnt. Flash on the iPad will not (and should not) happenand the main reason, as I see it, is one that never gets talked about:
Current Flash sites could never be made work well on any touchscreen device, and this cannot be solved by Apple, Adobe, or magical new hardware.
Thats not because of slow mobile performance, battery drain or crashes. Its because of the hover or mouseover problem.
Many (if not most) current Flash games, menus, and even video players require a visible mouse pointer. They are coded to rely on the difference between hovering over something (mouseover) vs. actually clicking. This distinction is not rare. Its pervasive, fundamental to interactive design, and vital to the basic use of Flash content. New Flash content designed just for touchscreens can be done, but people want existing Flash sites to work. All of themnot just some here and thereand in a usable manner. Thats impossible no matter what.
All that Apple and Adobe could ever do is make current Flash content visible. It would be seen, but very often would not work. Users would hate that broken promise much more than they hate gaps in pages, missing banner ads, and the need to download a game once from the App Store instead of re-downloading it every time they visit a Flash game page.
Mouseover examples:
* Video players where the controls appear on mouseover and hide otherwise. (This seems to be the norm, in fact. Whereas a click on the same video does something different: usually Pause. Try Hulu for instance.)
* Games where you steer with the mouse without clicking (extremely common).
* Menus that popup up subpage links when you mouse over a main button, vs. going directly to a main category page when you click.
* Buttons that have important explanations/summaries on mouseover, which you need to understand before deciding what to click.
* Functions that use mouseover to preview and click to commit; such as choosing hair colors for an avatar: you mouse over the colors until your character looks the way you like, and then you click to commit.
* Maps and diagrams that dont use click at all, but pop up info as you mouse around.
* Numerous other custom mouseover functions that just work with a mouse and need no explanation.
None of these things can work right with a finger (or traditional stylus) because on a touchscreen, pointing at something without clicking isnt a mouseover: its just holding your finger vaguely in the air. The device doesnt even know its happening.
In addition, some Flash sites rely on right-clicks (such as for security settings), and many rely on a physical keyboard. Especially games, which are the main kind of content people want from Flash. (Id say video, except video can easily be done without Flash, and sites are increasingly doing so. Much of the video missing from your favorite Flash site is probably easily found on YouTube anyway.) Games often use realtime key control, requiring a distinction between a single press and a long hold, and including the need for chording. For instance: holding right arrow continuously to walk, while simultaneously hitting the space bar to fire, and either hitting up-arrow once to jump or holding up-arrow longer to jump higher. A touchscreen keyboard cant handle these kinds of rapid, precise combinations well. And the keyboard would block the game view, too. Games on a touchscreen need controls suitable for a touchscreen (and/or tilt).
The only potential solutions to the mouseover problem are terrible ones:
A) The best case: every Flash app on every site is re-thought by its designers and re-coded by its programmers (if theyre even still available), just for touchscreens. They wouldnt use mouseovers any moreor else theyd have dual versions of all Flash content, so that mouse users could still benefit from the mouseovers they are used to. Thats a ton of work across the Web, for thousands of parties, and just isnt going to happen. Plus, with many sites, mouseovers are so fundamental that the very concept of the site would be altered, creating a whole different experience that would annoy and confuse the sites existing users. (And would this be any easier than simply re-designing without Flash at all? Not always.)
B) Gestures, finger gymnastics or extra physical buttons are created that simulate mouseoverwhich is absurd since mouseovers, by their nature, are meant to be simpler than a click/tap, not more complex. And meant to be natural, not something new to learn. Not a whole set of habits that violates our desktop habits. And any additional complexity is unworkable when it comes to games: you need to react quickly and simply, not remember when to hold the Simulate Mouseover button, or use three fingers, or whatever. The game itself is enough to deal with. Anything on top of that takes away fun.
C) Make clicking itselfthe fundamental, constantly-used actionMORE complex. Such as requiring a double-tap or two-finger tap before anything is registered. (Two taps is how Mobile Safari does JavaScript popup menus: the first tap pops it up, the second selects.) But many Flash apps and games already use double-click (or rapid-fire clicking) for other things. Extra taps only make sense for certain limited situations (like menu popups). And its not just clicking: you have to allow for movement: dragging vs. a moving mouseover. And even if a system could be created that was quick and simple enough to do all this in the middle of a game, how would the user know which parts of a web page played by these special rules? One part of a page (the Flash elements) would do fundamental things like scrolling or link-clicking differently from the rest of the page! (Not to mention the rest of your touch-based apps.)
D) Have a visible mouse pointer near your finger, and not interact with things directly. Use Apple track-pad style tap-and-drag gestures, as seen in some VNC clients. This kind of indirect control violates the very principle of direct touch manipulation. This is making the touchscreen be something like a laptop but worse and has little reason to exist. And again, youd have to keep remembering whether you were in direct touch mode or drag the arrow mode, and which parts of the page behaved in which way.
E) Require extra force for a real tap. So youd have to learn habits for a light tap vs. a hard tap. This extra complexity is non-intuitive, cramp-inducing, and easy for the user to get wrong (even with click feedback, as in RIMs failed BlackBerry SurePress experiment). This complicates the whole device just for the sake of one browser plugin, and makes it more expensive to build.
So its not just that Apple has refused to support Flash. It cannot, logically, be done. A finger is not a mouse, and Flash sites are designed to require a mouse pointer (and keyboard) in fundamental ways. Someday that may change, and every Flash site could be redesigned with touch-friendly Flash. But that doesnt make Flash sites work now.
Even if slow performance, battery drain and crashes werent problems with Flash (and they truly are), nothing can give users of any touchscreen, from any company, an acceptable experience with todays Flash sites. The thing so many complainers want is simply an impossibility.
By the way, imagine my embarrassment as a Flash developer when my own animated site wouldnt work on the newfangled iPhone! So I sat down and made new animations using WebKits CSS animation abilities. Now desktop users still see Flash at adamsi.com, but iPhone users see animations too. It can be done.
Morgan Adams, adamsimmersive
interactive design and games
At the core level, FLASH is dependent on "mouse over" events to trigger events and pop-up menu choices, plus mouse clicks or keyboard actions... and multi-touch and touch screens don't necessarily use those paradigms for their events. Flash would have be re-written from the ground up to accept the touch screen paradigm... but then you would have two different types of Flash content on the web. That which was written before the change, which will not recognize touch screen inputs, and that which was written to accept touch screen inputs. How long, if ever, would all the thousands of legacy Flash web apps be updated to work with the touch devices? Probably never.