Perl::Flash

What's this all about then?
Well this page is for anybody wanting to test SWF applications they're writing. It's autogenerated by an ugly little Perl script I hacked up and, given a directory with some SWF files in, knocks up a few tables with all the files with a particular tag and all the tags in a particular file plus the least number of files you'll need to cover every tag and the smallest file for each tag.

The names of the SWF files are links to themselves and the names of tags are links to the appropraite section of the SWF File Reference on OpenSWF.org.

If you have any other good SWF files, especially any with tags that I don't have examples of already, then email them to me and I'll whack them up here.

And whilst you're here have a look at my Perl::Flash page </shameless plug>

Simon Wistow

A list of every file and every tag in it...

[textbox] End ShowFrame PlaceObject SetBackgroundColor DefineFont DefineText DefineFontInfo PlaceObject2 DefineEditText
[sprite] End ShowFrame DefineShape PlaceObject SetBackgroundColor DefineShape2 PlaceObject2 DefineSprite
[button] End ShowFrame DefineShape PlaceObject SetBackgroundColor DefineShape2 ButtonRecord
[christmas] End ShowFrame DefineShape PlaceObject RemoveObject DefineButton SetBackgroundColor DoAction DefineSound StartSound DefineButtonSound SoundStreamHead DefineShape2 PlaceObject2 RemoveObject2 DefineButton2 SoundStreamHead2 ButtonRecord
[firstrun] End ShowFrame DefineShape PlaceObject RemoveObject SetBackgroundColor DefineShape2
[lossless] End ShowFrame DefineShape PlaceObject DefineBits SetBackgroundColor DefineFont DefineText DefineFontInfo DefineBitsLossless PlaceObject2 DefineShape3 DefineText2
[profero] End ShowFrame DefineShape PlaceObject RemoveObject DefineButton SetBackgroundColor DoAction DefineShape2 Protect PlaceObject2 RemoveObject2 DefineButton2 ButtonRecord
[sound] End ShowFrame DefineShape PlaceObject RemoveObject DefineButton SetBackgroundColor DefineFont DefineText DoAction DefineFontInfo DefineSound StartSound DefineButtonSound SoundStreamHead DefineShape2 PlaceObject2 RemoveObject2 DefineButton2 SoundStreamHead2 ButtonRecord
[sound2] End ShowFrame DefineShape PlaceObject RemoveObject DefineBits DefineButton JPEGTables SetBackgroundColor DefineFont DefineText DoAction DefineFontInfo DefineSound StartSound SoundStreamHead DefineShape2 PlaceObject2 RemoveObject2 DefineButton2 SoundStreamHead2 ButtonRecord
[sound3] End ShowFrame SetBackgroundColor DefineSound StartSound SoundStreamHead SoundStreamHead2
[test] End ShowFrame DefineShape PlaceObject DefineBits JPEGTables SetBackgroundColor PlaceObject2
[test2] End ShowFrame DefineShape PlaceObject SetBackgroundColor PlaceObject2
[test3] End ShowFrame DefineShape PlaceObject DefineBits SetBackgroundColor DefineBitsJPEG2 PlaceObject2
[test4] End ShowFrame PlaceObject SetBackgroundColor DefineFont DefineText DefineFontInfo PlaceObject2
[turkstud] End ShowFrame DefineShape PlaceObject RemoveObject DefineBits JPEGTables SetBackgroundColor DefineFont DefineText DefineFontInfo DefineSound StartSound SoundStreamHead PlaceObject2 RemoveObject2 SoundStreamHead2

A list of every tag and every file it appears in ...

[End] textbox sprite button christmas firstrun lossless profero sound sound2 sound3 test test2 test3 test4 turkstud 
[ShowFrame] textbox sprite button christmas firstrun lossless profero sound sound2 sound3 test test2 test3 test4 turkstud 
[DefineShape] sprite button christmas firstrun lossless profero sound sound2 test test2 test3 turkstud 
[FreeCharacter] 
[PlaceObject] textbox sprite button christmas firstrun lossless profero sound sound2 test test2 test3 test4 turkstud 
[RemoveObject] christmas firstrun profero sound sound2 turkstud 
[DefineBits] lossless sound2 test test3 turkstud 
[DefineButton] christmas profero sound sound2 
[JPEGTables] sound2 test turkstud 
[SetBackgroundColor] textbox sprite button christmas firstrun lossless profero sound sound2 sound3 test test2 test3 test4 turkstud 
[DefineFont] textbox lossless sound sound2 test4 turkstud 
[DefineText] textbox lossless sound sound2 test4 turkstud 
[DoAction] christmas profero sound sound2 
[DefineFontInfo] textbox lossless sound sound2 test4 turkstud 
[DefineSound] christmas sound sound2 sound3 turkstud 
[StartSound] christmas sound sound2 sound3 turkstud 
[DefineButtonSound] christmas sound 
[SoundStreamHead] christmas sound sound2 sound3 turkstud 
[SoundStreamBlock] 
[DefineBitsLossless] lossless 
[DefineBitsJPEG2] test3 
[DefineShape2] sprite button christmas firstrun profero sound sound2 
[DefineButtonCxform] 
[Protect] profero 
[PlaceObject2] textbox sprite christmas lossless profero sound sound2 test test2 test3 test4 turkstud 
[RemoveObject2] christmas profero sound sound2 turkstud 
[DefineShape3] lossless 
[DefineText2] lossless 
[DefineEditText] textbox 
[DefineButton2] christmas profero sound sound2 
[DefineBitsJPEG3] 
[DefineBitsLossless2] 
[DefineSprite] sprite 
[NameCharacter] 
[FrameLabel] 
[SoundStreamHead2] christmas sound sound2 sound3 turkstud 
[DefineMorphShape] 
[DefineFont2] 
[ShapeStyle] 
[ShapeRecord] 
[ButtonRecord] button christmas profero sound sound2 
[TextRecord] 

The minimum files you need to pass every tag (or at least every tag that I have in all my test SWFs) ..

sound2
sound
lossless
test3
profero
textbox
sprite

On the other hand those files above are pretty big and it is faster to parse smaller files so this list is the smallest file for each tag ...

[test2] (206 bytes) End ShowFrame DefineShape PlaceObject SetBackgroundColor PlaceObject2
[button] (562 bytes) DefineShape2 ButtonRecord
[textbox] (776 bytes) DefineFont DefineText DefineFontInfo DefineEditText
[test] (2 k) DefineBits JPEGTables
[firstrun] (2 k) RemoveObject
[sprite] (3 k) DefineSprite
[sound3] (4 k) DefineSound StartSound SoundStreamHead SoundStreamHead2
[profero] (27 k) DefineButton DoAction Protect RemoveObject2 DefineButton2
[test3] (61 k) DefineBitsJPEG2
[sound] (148 k) DefineButtonSound
[lossless] (1993 k) DefineBitsLossless DefineShape3 DefineText2