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.
Started work on the Load() feature of the SSWF library. This helped fixing several small mistakes in the documentation.
Fixed the definition of the String Length action. Found by Masoud S., thank you!
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. A proper table is defined on Adobe website here. (link valid on Aug 15, 2007)
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.
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
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.
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.
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.
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.
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.
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).
Fixed the name swf_protect pointed out by Benoit Perrot (thanks!)
Fixed the sound sample definition so it properly defines the samples as being signed.
Added Declare Function (V7).
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).
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.
Fixed the sample shown for the computation of the SWF coordinates.
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
Fixed many points by adding a new line (it looks nicer).
f_edit_leading from unsigned short to signed short. (by Thatcher Ulrich - http://tulrich.com.)
Added different sound tags and the corresponding common structures.
Added the DefineButtonSound tag.
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)
Fixed some information about several tags and actions. Added tag 58 (Password?).
Added tag 49 (comment about the generator of an SWF movie). Fixed some information about the property sets.
Fixed the definition of the DefineEditText. It doesn't talk about the button anymore and includes what and how it works.
Creation of this document based on the different documents available on the now extinct OpenSWF.org 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.