Login | Register
Open Source and free Development Tools for Flash

Open Source and free Development Tools for Flash

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 (open source/MIT license)

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 (open source/CPL)

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.

Ajax Animator (free)

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!

Tofino (commercial and free)

Visual Studio plugin that integrates with the free Flex SDK provided by Adobe. Read more here.

Amethyst (commercial w/free version)

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).

Wonderfl (free)

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.

Project Sprouts (free)

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.

Tools for generating SWF files

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

Open Source Flash Players

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.

Openness is important

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.

 

Get new stories first

Click to follow us on Twitter!

 

Comments


Posted by MatthewFabb on 04/23 at 03:30 PM

Really great article that will hopefully make some aware outside the Flash community of the tools available.

Just one small correction:
“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 Open Source, but is distributed along with the framework to create a complete authoring solution”

Note if you go to the legal page of the Flex SDK, the compiler is open source:
http://opensource.adobe.com/wiki/display/flexsdk/Legal+Stuff

This is why some such as Joa Ebert and others have been able to extend the Flex compiler:
http://blog.joa-ebert.com/2009/06/19/leaving-the-sandbox/


Posted by Jens C Brynildsen on 04/23 at 05:30 PM

Thanks Matthew! Updated the article now.


Posted by LukeBayes on 04/28 at 06:00 PM

Just one small correction to the other small correction:

The Flex SDK compiler is not open source. Joa Ebert is able to distribute his code only because Adobe isn’t enforcing the terms of their license agreement.

If you read section 3.1.1 of the Adobe Flex 4 SDK License agreement, it clearly states that we are not granted permission to distribute the SDK, only to modify it for “internal use”.

“This Agreement does not grant you the right to distribute the Build Tools, Documentation or Runtime Software.”

Additionally, there are limitations to the redistribution the component sources. So even those files are not technically “open source” in the generally accepted meaning of the word.


Posted by Jens C Brynildsen on 04/28 at 06:44 PM

Hi Luke,
I checked this with an Adobe evangelist that ran it by the team. It’s true that that applies to the “Adobe Flex SDK” but Adobe now also publishes the “Open Source Flex SDK” that contains the compilers, the framework and the debugger.

The Open Source Flex framework is licensed as Mozilla Public License, version 1.1 http://www.mozilla.org/MPL/MPL-1.1.html
You’ll find the details here: http://opensource.adobe.com/wiki/display/flexsdk/Legal+Stuff

J


Posted by LukeBayes on 04/28 at 07:12 PM

Hey Jens,

Thanks for the clearing that up!

I should have checked in before running off at the keyboard!

Sorry for the confusion.


Posted by Jens C Brynildsen on 04/28 at 07:48 PM

No worries. I also thought that, but it seems Adobe was even more open than I thought :)


Posted by Tekool on 05/13 at 10:18 PM

More and more people believe that a “still quite open Flash Player” is not sufficient, so they sign a petition to ask Adobe to fully open-source Flash Player http://www.openplayer.net/

Please share and sign it too!


Posted by andyli on 05/13 at 10:26 PM

HaXe is more accurate a programming language with a compiler that can generate swf.

I mean saying it as “AS2/AS3 compiler” is a bit misleading since it does not compile AS code (although it can compile “to” AS).


Posted by Jens C Brynildsen on 05/13 at 11:03 PM

@andyli Sure. haXe is certainly fantastic and I know Nicolas quite well. It is much more than just a compiler, but in this article I’m just using it as an example of alternative solutions for compiling SWFs :)

J


Posted by actionscriptdev on 05/14 at 01:17 PM

Good post!!!

I would like to add a little project I created more than a year ago, it’s name is codeDraw, an Open Source WYSIWYG tool for creating graphics using Flash and generating ActionScript 2.0 & 3.0 code that can be used on Flash, Flex, MTASC & haXe projects.

Here’s de URL: http://codedraw.wordpress.com/ Give it a look.

Greetings to everyone.

Submit a comment

Only registered members can comment. Click here to login or here to register