April 23rd 2010 | Jens C Brynildsen
There seems to be a general misunderstanding among Open Source and HTML5 advocates that you need to buy software from Adobe to create Flash content. This is far from the truth and Adobe both encourage and help developers of free and Open Source tools. This is our guide to producing Flash files without spending a dime.
After reading some of the comments on I'd rather be a Woz and other articles regarding HTML5 and Flash this week, it struck me that it's not many promoting the many free and open source toolchains that exist for producing Flash-based content. This is a non-extensive list of some of the workflows I've used as well as the software that drives them.
Flashdevelop is a Microsoft Windows .NET 2.0 application supporting Windows XP, Windows Vista and Windows 7. Blazing fast editor that compiles it's AS3 based SWF files using Adobe's free Flex SDK compiler. For AS2 authoring (targeting Flash 8 and earlier), it's using the combination of swfmill and MTASC.
OpenLaszlo made Rich Internet Applications using XML markup long before Adobe started working on Flex. The Open Source project can export to Java, DHTML or SWF files and is mainly targeting application development. OpenLaszlo is using it's own compiler to generate the output. OpenLaszlo also has a server component to it, so it's a very complete solution.
This tool targets basic SWF authoring supporting animation supporting animated GIFs, SVG and SWF authoring. SWFs are generated using the MING library. What is unique about the tool is that it's fully standards based authoring application that works straight in your browser. Compilation is done on the server, but the authoring of content is done through a browser meaning you can even use this to produce SWF's on an iPad!
Visual Studio plugin that integrates with the free Flex SDK provided by Adobe. Read more here.
Visual Studio plugin offering intellisense, refactoring and more. Integrates with the free Flex SDK provided by Adobe. Read more here.
This is just a brief list of some of the free solutions I know of. There's so many workflows possible using the editor of your choice such as TextMate with the free Flex SDK compiler. Feel free to add other alternatives in the comments. There are also many hundred (if not thousand) commercial tools for creating Flash files that are made by other vendors than Adobe. Some of my favorites are FDT (for code) and ToonBoom (for animation).
Online editor/compiler built around a community where you can may your code to be public so others can fork it. Offers support for many of the popular Open Source APIs such as as3corelib, away3d, Box2d, TweenLite and many more. Just open any project and you'll see the actionscript code for the project as well as the compiled result. If you start a new project or fork an existing one, you type code into one side of the browser window and see your compiled result next to it. This makes Wonderfl unique as a learning experience as you can see the code required for any project you're viewing.
This is a complete Actionscript development setup that you install using Ruby and RubyGems. Apart from ordinary editing and compilation, the tool generates classes, test cases, test suites and more. It automatically downloads and installs both open-source and proprietary tools such as MTASC, SWFMill, MXMLC, COMPC, AsDoc, and even the Adobe Flash Player. It also supports continuous integration tools such as Cruise Control or especially CruiseControl.rb.
Many of the tools mentioned above use Adobe's Flex SDK that consists of the Open Source Flex framework and a compiler. The compiler is
not also Open Source, but is distributed along with the framework to create a complete authoring solution. You can view the repository for the entire SDK and compiler here. Adobe also encourage others to use the SDK in their own products, be it free or commercial. There is however several other alternatives available and Adobe approves and even encourages this.
Flasm AS2 assember/disassembler (open source/BSD license)
MTASC AS2 compiler (open source/GNU GPL license)
Apparat AS3 compiler/decompiler (open source/GNU LGPL)
HAXE AS2/AS3 compiler
MING AS2/AS3 (partial) compiler for C++, PHP, Python, Ruby, and Perl
While the specs for creating SWF files are freely available, it's not currently possible to create fully featured Flash Players as Open Source. The main reason is that Adobe's implementation of the Flash Player makes use of technology licensed from several companies. Some of these licenses are open and free, while others are commercial and requires a license.
There is however many companies that develop their own Flash Players these days. Though the Open Screen Project, Adobe helps various industry players create certified Flash Players for their own platforms. OSP partners will get access to a base implementation of the Flash Player written for *nix platforms that they then will get help to port to their device. The engineers that does the job will have to go through a special training with Adobe to be able to use the Flash logo and tradmarks on their device.
While fully possible, it's not a trivial thing to create your own Flash Player. Creating just the simplest player that supports a tiny subset of features is hard enough and the Gnash project is the only active effort we know about. This is not because Adobe prevents others from creating their own Flash Player, but rather since it's not a trivial thing to do. In blog comments all over the web, you'll find anonymous trolls that post comments saying that "Adobe's Flash Player sucks", "the Flash Player has a rotten code base" and so on. It's very easy to make such bold statements when you never even read the spec or tried to implement it yourself.
The Flash Player itself is not Open Source, though many of the related technologies are. Flash is not as open as other technologies either, but Adobe is a company that really listen to their users. Several of the new features in Flash Player 10 were a direct result of requests from the community and Adobe maintains a public bug-base for most of it's developer-centric software and they welcome suggestions. Adobe may not be all about Open Source, but it's still a very open company. As a developer on the Flash Platform, I really appreciate that.
23 apr 2010, 18:28: Updated the article to reflect that the compiler is Open Source as well.
All CS5 products available today
Flash Builder, Flex 4 and Coldfusion Builder released