Flash, or SWF, is an open file format developed by Macromedia. Flash
files can contain executable code, raster and vector images, and sounds
in a variety of formats. Many people use Flash for animated banner ads,
online games, and more advanced applications. Macromedia frequently
refers to Flash files as "movies", but they can do much more than, say,
AVI files.
Because Macromedia distributes a browser plugin, running ("playing")
a Flash file (for most people) is as simple as viewing a web page.
I think the executable code is in some tokenized and possibly compiled
version of an ugly scripting language Macromedia calls "Lingo".
(I think recent versions of Flash support scripting in JavaScript, known
as "ActionScript", as well.) Supposedly the code is confined so that it
can't communicate with arbitrary network addresses from the executing
machine, or with arbitrary code running on your machine, although it
can communicate with JavaScript in a web page that embeds it.
On my laptop, I can't run Flash files, because although Macromedia
has released details on the file format, their "playing" software is
proprietary, although available gratis, and I don't install proprietary
software on my laptop.
I also write a lot of cute little hacks and post them to kragen-hacks,
but few people run them, because it typically takes several steps to
install them on your computer so you can run them. Many of them could
be converted to Flash without much loss, and then people could run them
very easily. But Macromedia's Flash-authoring tools are also proprietary,
so I don't install them.
So I took an inventory of the world's Flash reading and writing software
(except for the proprietary stuff). The results follow.
2003-03-15: free SWF tools for producing and viewing Flash.
DrawSWF, drawswf.sf.net: Java 1.4 drawing program that draws in SVG
and exports to SWF. The SWF library is licensed under a BSD license.
Not sure if it's useful for arbitrary animation creation, and it
surely isn't useful for editing existing Flash files.
Tubesock, tubesock.sf.net: GTK/GNOME shockwave file player. Looks
dead as of mid-2002. Probably in C. They planned a Mozilla plugin
eventually.
SWFTools, GPL, http://www.quiss.org/swftools/ --- a merging tool
(swfcombine), an extracting tool (swfextract), conversion from PDF,
JPEG, PNG, AVI, and WAV to SWF, a text parsing tool called swfstrings,
an SWF parser called swfdump, and rfxswflib, a library for reading and
writing SWFs. Some pretty cool Flash files here, made with the
SWFTools, including a CGI script that generates Flash files
dynamically!
swfdec, swfdec.sf.net --- a library for rendering Flash animations,
including a GTK+ player (swf_play) and a Mozilla plugin. Might be why
Tubesock died. Looks quite active. 0.2.0 is out. LGPL.
gplflash, www.swift-tools.com/Flash/ --- a GPL library for rendering
Flash animations, also including a standalone player and a plugin, and
a KDE screen saver. I have a feeling it's out of date. Dunno if it
really is.
svg2swf, http://www.eskimo.com/~robla/svg2swf/ --- a Python script
that parses an SVG file using SAX and writes an SWF file with the ming
library.
Ming, LGPL (according to freshmeat), ming.sourceforge.net, formerly
www.opaque.net/ming/ --- an SWF output library in C with bindings for
C++, PHP, Perl, Python, and Ruby; looks like development is active
again.
Ming-Sharp, ming-sharp.sourceforge.net --- an LGPL .NET binding for
Ming? Works with Mono. Says it supports "almost all of Flash 4's
features, including: shapes, gradients, bitmaps (pngs and jpegs),
morphs ("shape tweens"), text, buttons, actions, sprites ("movie
clips"), streaming mp3, and color transforms--the only thing that's
missing is sound events." Presumably that means Ming does too.
ganim8, W3C free software license, ganim8.sf.net, a "suite of tools"
for viewing and editing movies, including SWF. GTK. Looks actively
developed. Apparently it uses ffmpeg to write SWF files and can't
read them. In Python?