Made to Order Software Corporation Logo

Appendix B — History of the SSWF reference

Dec 2, 2009

Moved the monolithic documentation to a multi-page hierarchical document that includes everything we had before plus many links, many terms attached to all pages (tags, English words.) And revision of most of the text for better English and clarification in some places.

Strengthen the formatting with CCK fields so all declarations look alike.

Broken up the actions from one large table to a set of pages.

Dec 14, 2008

Started work on the Load() feature of the SSWF library. This helped fixing several small mistakes in the documentation.

May 18, 2008

Fixed the definition of the String Length action. Found by Masoud S., thank you!

June 23, 2007

Fixed the definition of the Join Style in swf_line_style.

Fixed the definition of the gradient fill. The focal gradient does include a matrix as I was thinking it would.

Added information about the miter limit factor of swf_line_style.

Fixed the Add, Subtract and Difference encodings, as noted by Benjamin Otte, it was wrong in the Flash 8 documentation.

Fixed the B-Spline matrix. 2nd column, 4th row was 3, the correct value is 4. This error was found by Michael Heyse who also offered a code snippet to compute the quadratic B-spline curve directly instead of using the cubic spline computation that I was offering.

October 14, 2006

Applied a fix to the FSCommand2 description by Ammar Mardawi.

Fixed the ShowFrame tag number which is 1, not 2. Noticed by Peter D.

Fixed the swf_line_style the second f_no_hscale was supposed to be f_no_vscale.

Fixed the String Length (multi-byte) instruction which is mbslen()and not wcslen().

Fixed the information about the size saved in an swf_tag structure since some tags require you to ALWAYS save the tag with a long form even if the size is small. The Player will not display the image properly if you do not do so!

Added the three DoABC tags.

September 30, 2006

Complete review of the document to fix what was out of date such as the brief history and tags. I improved a bit on the look... (maybe not?!) I tried to include all of Version 8 information. I will need to tweak the version 8 information as I start testing (fixing swapped bytes, etc.)

In particular, I added the following tags from version 8: CSMTextSettings, DefineFont3, DefineFontAlignZones, DefineMorphShape2. DefineScalingGrid, DefineShape4, FileAttributes, Import2, Metadata and PlaceObject3.

I added the missing JPEGTables and End tags.

Also, I fixed and updated the following tags: DefineFont2, DefineFontInfo, DefineSprite and DefineVideoStream.

Along the version 8 tags, I added their corresponding common structures and made changes to existing but extended structures such as: swf_any_filter, swf_fill_style, swf_filter_blur, swf_filter_colormatrix, swf_filter_convolution, swf_filter_glow, swf_filter_type, swf_gradient, swf_line_style, swf_zone_array and swf_zone_data.

I changed all the references from one object to another to use f_<name>_id_ref. This way you know whether it is a reference without having to read the information about that identifier.

December 8, 2005

Added the PlaceObject3 definitions along the filters (filters need to be defined properly!).

Added the missing definition of the text field.

Fixed a few things here and there.

October 10, 2005

Some fixes to the size fields used by the DefineButton2. The last size field will be zero indicating that it is the last. This includes the field indicating the size of the buttons.

May 10, 2005

Many changes to the Declare Function (V7) for clarification and some error fixes (i.e. it only supports 255 variables for parameters, I mentioned 256 in different places; the bits are defined on a short which means the bytes are swapped in the SWF files; I added the arguments as one of the internal parameters; I added some comments about how to load or generate these flags; better explanation for the preload vs. suppress flags).

March 25, 2005

Fixed the name swf_protect pointed out by Benoit Perrot (thanks!)

January 18, 2005

Fixed the text record information (swf_text_record) which changed with version 7. The change was pinpointed by Thatcher Ulrich (thanks!), the author of gameswf.

October 15, 2004

Fixed the sound sample definition so it properly defines the samples as being signed.

October 03, 2004

Added Declare Function (V7).

Added swf_params.

Added information about the 256 registers available in SWF version 7.

Ameliorated the Push Register Data documentation.

Added Extends (SWF version 7).

Added Throw (SWF version 7).

Added Try (SWF version 7).

Added Cast Object (SWF version 7).

Added Implements (SWF version 7).

Added ScriptLimits (SWF version 7).

Added SetTabIndex (SWF version 7).

September 30, 2004

Moved the geometry explanations at the end in Appendix A. If I ever decide to cut the file in parts, that would become a separate part.

September 14, 2004

Fixed the sample shown for the computation of the SWF coordinates.

July 17, 2004

Fixed some English grammar.

Added a link back to the home page.

Added a warning about non-existent fonts on a system when referencing a system font from an swf_defineedittext object.

February 20, 2004

Fixed many points by adding a new line (it looks nicer).

June 07, 2003

Fixed the Import tag to 57 instead of 56 (Export). (Special thanks to Thatcher Ulrich -

May 30, 2003

Fixed the f_edit_indent& f_edit_leadingfrom unsigned short to signed short. (by Thatcher Ulrich -

December 6, 2002

Added different sound tags and the corresponding common structures.

Added the DefineButtonSound tag.

November 28, 2002

Added the language entry in the DefineFont2 and DefineFontInfo tags. Added some other information about fonts.

October 30, 2002

The DefineFont2 tag was fixed. It is necessary to have an extra offset which actually represents the total size of the glyphs.

Added the Color and Math objects.

Changed the limit on the number of entries in a dictionary from 256 to 65534 (not sure what 65535 may be used for).

Removed the 2nd instance of properties.

The PlaceObject2 describes the clipping mechanism available with it and which objects can be used to clip others.

Added the DoInitAction tag with complete definitions (V6.0)

Added the ProtectDebug and ProtectDebug2 tags with complete definitions (V5.0 & V6.0)

Added the Import and Export tags with complete definitions (V5.0)

October 10, 2002

Fixed some information about several tags and actions. Added tag 58 (Password?).

October 8, 2002

Added tag 49 (comment about the generator of an SWF movie). Fixed some information about the property sets.

October 3, 2002

Fixed the definition of the DefineEditText. It doesn't talk about the button anymore and includes what and how it works.

June 17, 2002

Creation of this document based on the different documents available on the now extinct web site (it was mainly the SWF File Reference version 4 and 5.) And once the sswf tool started to work, on how the plug in would behave with the files generated by it.