HTML5 (the new HTML/web-page language standard) is now widely touted as the replacement of Flash, and over the past few years a number of tools have been developed to automatically convert Flash to HTML5. However, Flash will continue to be used for the foreseeable future, for the following reasons:
1. Older, still widely used web-browsers, do not support HTML5. According to the latest statistics the majority of Internet users are still using browsers that do not or only partially support HTML5. If you look at the enduring usage of the relatively ancient Internet Explorer 6.0 (released in 2001) you can see that it could take at least another five years or so for the large majority of people to be using web-browsers which fully support HTML5. Even relatively recent versions of the popular Internet Explorer and Firefox browsers have only limited or no support for HTML5.
2. Mobile devices do support HTML5, but also Flash - through the appstore. Android devices support Flash in the mobile browser up to Android v 4.0, but iPads and iPhones do not. The future of Flash on mobile devices and tablets is not in the web-browser, but in the appstore. These are Flash apps specifically designed for touch-screen interfaces. iPads and iPhones do support Flash-based apps through the appstore, and Android devices through the Google Play Store. Many of the most popular iPad and Android apps are Flash-based (you just don't know it, because it is not advertised anywhere). An example is the Flash game Machinarium, which when released on the iPad quickly became the number one paid iPad app.
4. Tools to convert Flash to HTML5 are still limited, and for complex applications it is not an easy process. The continuing absence of an easy conversion process from Flash to HTML5 inhibits the development of HTML5 version of complex apps, games and platforms, due to the investment required.
Apache FlexJS and Apache Flex FalconJX cross-compiles MXML and ActionScript to HTML/JS/CSS.
Mozilla's Shumway uses TypeScript to translate ActionScript. It is already available as a Firefox extension, and recent headlines on news websites such as TechCrunch already announced that Shumway eliminates the need for Adobe Flash Player.
ActionScript to TypeScript conversion
On the downside, Swiffy does not support all ActionScript 2 and 3 functionality. Moreover, the Swiffy HTML output cannot be easily edited.
Swiffy may not be able to convert very complex apps and games, but with some tweaking to overcome its limitations, it can convert almost anything.
It appears that ActionScript 3 support is still much more limited than for ActionScript 2, as conversion for an ActionScript 3 app led to huge number of 'not supported' errors - including non-support for some very common libraries. Google Swiffy was tested with several ActionScript 2 Flash games, ranging in complexity, and the results were surprisingly good. Swiffy has certainly come a long way since 2012, when it failed to convert even simple Flash games.
In the latest version tested there were still some remaining issues:
- Flash components did not convert. For games this is not such a big issue (since they rarely use the built-in Flash components), however, it can be problematic for applications relying heavily on these components.
- Sound did not convert.
- Some graphical artifacts remained when going from one screen to another. This shouldn't be too difficult to iron out.
- It is slightly less responsive than the Flash version. This can be especially problematic in games, where slight delays can ruin gameplay.
Aspects which converted well are as follows:
- Converted timeline graphics and animations are exactly as in the original Flash version.
- The in-game mechanics converted well, aside from the responsiveness issue mentioned above.
- Keyboard interactivity worked fine.
The Swiffy Gallery shows some interesting examples of what can be converted successfully, including two simple Flash games.
On PCs, the lack of support for HTML5 means that Flash will likely remain popular for complex apps and games for at least some years to come. It will probably be replaced completely with HTML5 in other areas such as for advertising and animations. For mobile devices and tablets, Flash is supported in certain non-free web browser apps but is not likely to see widespread use. Instead it's future is in the form of apps. It is already a popular platform for building mobile apps because it can be distributed relatively easily across different platforms, including Apple's Mac OS X, iOS on iPads and iPhones, Google Android, RIM BlackBerry, Microsoft Windows and even TVs. Many people have apps on their iPhones and other devices developed using a Flash development platform without realizing it.
By the time that HTML5 becomes more widely supported on PCs than Flash, which may be around five years from now, it is very likely that Flash to HTML5 conversion tools will have become sophisticated enough to convert more complex Flash apps. HTML5 will need to evolve to be able develop the kind of complex apps that can be built with Flash today, and the evolution of conversion tools will go side by side with the evolution of HTML5 itself. Although many Flash developers consider HTML5 to be a step back, I see this as a small step back that will lead to a giant leap forward. It is too early to tell what the possibilities will be, but the future of interactive media looks as promising as ever.