transform-swf-updates Mailing List for Transform SWF for Java
Brought to you by:
smackay
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
|
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(7) |
Jul
(9) |
Aug
(1) |
Sep
(3) |
Oct
(5) |
Nov
(1) |
Dec
|
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-11-25 16:25:48
|
This mailing was primarily used to post news about releases, bug reports and patches. With the repository moving to GitHub this list is shutting down. All new releases will still be announced on the Flagstone Announcements forum, http://www.flagstonesoftware.com/phpBB3/viewforum.php?f=1 All reports of bugs and patches to fix them will be posted on the new Flagstone Bugs & Patches forum, http://www.flagstonesoftware.com/phpBB3/viewforum.php?f=8 Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-10-18 11:29:55
|
Progress This Week: Released a patch for bug in the way DefineButton2 was encoded. Planned For Next Week: 1. Migrating issues from Trac to SourgeForge's Tracker. 2. Moving contents from the Trac wiki into Maven site files. These tasks were delayed by the work on the patch and other projects. Regards, Stuart MacKay Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-10-15 14:34:29
|
### Eclipse Workspace Patch 1.0 #P transform-java-3-0 Index: src/main/java/com/flagstone/transform/button/DefineButton2.java =================================================================== --- src/main/java/com/flagstone/transform/button/DefineButton2.java (revision 351) +++ src/main/java/com/flagstone/transform/button/DefineButton2.java (working copy) @@ -214,12 +214,14 @@ } /** {@inheritDoc} */ - public int getIdentifier() { + @Override + public int getIdentifier() { return identifier; } /** {@inheritDoc} */ - public void setIdentifier(final int uid) { + @Override + public void setIdentifier(final int uid) { if ((uid < 1) || (uid > Coder.USHORT_MAX)) { throw new IllegalArgumentRangeException( 1, Coder.USHORT_MAX, uid); @@ -332,7 +334,8 @@ } /** {@inheritDoc} */ - public DefineButton2 copy() { + @Override + public DefineButton2 copy() { return new DefineButton2(this); } @@ -343,7 +346,8 @@ } /** {@inheritDoc} */ - public int prepareToEncode(final Context context) { + @Override + public int prepareToEncode(final Context context) { // CHECKSTYLE:OFF - Fixed length when encoded. context.put(Context.TYPE, MovieTypes.DEFINE_BUTTON_2); context.put(Context.TRANSPARENT, 1); @@ -357,7 +361,7 @@ if (events.isEmpty()) { offset = 0; } else { - offset = length - 7; + offset = length - 3; } EventHandler handler; @@ -386,7 +390,8 @@ } /** {@inheritDoc} */ - public void encode(final SWFEncoder coder, final Context context) + @Override + public void encode(final SWFEncoder coder, final Context context) throws IOException { context.put(Context.TYPE, MovieTypes.DEFINE_BUTTON_2); |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-10-08 14:31:14
|
Progress This Week: 1. Released a patch for a bug in JPGDecoder. Planned For Next Week: 1. Migrating issues from Trac to SourgeForge's Tracker. 2. Moving contents from the Trac wiki into Maven site files. Regards, Stuart MacKay Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-10-06 09:42:44
|
When decoding jpg files where the image data contains an odd number of bytes an exception will be thrown by the JPGDecoder. See https://sourceforge.net/tracker/?func=detail&aid=3082031&group_id=124182&atid=698744 for more details. Attached is a patch (the bug fix for JPGDecoder and an new tag identifier added to JPEGInfo). The SVN repository, http://transform-swf.svn.sourceforge.net/svnroot/transform-swf/trunk has been updated. A SNAPSHOT has been deployed to the Sonatype public repository, https://oss.sonatype.org/content/groups/public/com/flagstone/transform/3.0.1-SNAPSHOT/ The fix will be included in the 3.0.1 release - though no date has been set for this yet. Regards, Stuart MacKay Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-10-01 14:02:44
|
Progress This Week: 1. Got the first bug report since Transform 3.0 was formally released: The JPGDecoder fails if the entropy encoded image data contains an odd number of bytes. A fix has already been prepared but I wanted to spend a little more time so see if there was a more efficient way of processing the image data. If anyone needs a fix in advance of the formal patch being released just get in touch and I can send you the files. 2. Updated ImageShape so a DefineShape3 tag is generated if no line style is defined. Previously a DefineShape4 tag was generated which needed replacing if a Flash file was being created for version 8 or less. This change has been committed to the repository. Planned for next week: 1. Finalize the patch for the JPGDecoder bug. Regards, Stuart MacKay Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-09-17 14:54:47
|
The big news this week, in case you missed it, was that Transform SWF 3.0 was finally released last Wednesday (15th). You can either get the release from: 1. Flagstone web site, http://www.flagstonesoftware.com/downloads/index.html 2. SourceForge, http://sourceforge.net/projects/transform-swf/ 3. Direct from the SVN repository, http://transform-swf.svn.sourceforge.net/svnroot/transform-swf/trunk 4. Maven Central, http://repo1.maven.org/maven2/ groupId: com.flagstone artifactId: transform version: 3.0 There was a bit of unfinished business for this release: 1. Class documentation. It was decided that reviewing and updating will be an on-going task with incremental improvements rather than a concrete task that can be considerd to be finished. 2. Unit tests. Only a small fraction of the classes have unit tests. The integration tests with real-world flash fiels were considered to be sufficiently powerful to allow the the code to be released. As with the class documentation, unit tests will be added on a incremental basis. 3. Code refactoring of ImageFilter and bugs when getting the image pixel data from BMPDecoder and PNGDecoder. This code is not widely used so fixing these is going to be deferred - probably to 3.0.1 for the bug fixes and 3.1 for the code refactoring. So what's next ? The main effort over the past weeks (excluding vacation) was on getting Translate SWF 3.0 out of the door. Progress is good but it is probably going to take a few more weeks yet. I plan on updating the Transform roadmap over the next few days to map out what is going into the next few releases. I have not set a date for these since it is going to depend on what bugs get reported in the coming days: serious bugs means releases very soon, otherwise the focus is on Translate. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-09-15 10:11:48
|
The first production release of Transform 3.0 is available for download, http://www.flagstonesoftware.com/downloads/index.html. This release is also available from the Maven Central Repository: http://repo2.maven.org/maven2/com/flagstone/transform/ Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-09-10 12:27:30
|
After a somewhat relaxing time on the beach (an excessive, 4 weeks to be exact) I am now safely back at work - with sore arms after having to build Miguel rather large sandcastles on a daily basis. Progress This Week: Just a few small changes in advance of the release next week. Most of the work is still on Translate. I was hoping to be able to release a new version on Sept 15th along with Transform however that is looking less likely at this point. API Changes: CharacterEncoding has been updated with new definitions for Shift-JIS related character sets. Many thanks to Glenn. Bug Fixes: DefineButton was not decoding the field that uniquely identifies the button definition. 1. Patches for the affected classes are attached. 2. The 3.0-SNAPSHOT in the Sonatype public repository, https://oss.sonatype.org/content/groups/public/, has been updated. 3. The SVN repository, https://transform-swf.svn.sourceforge.net/svnroot/transform-swf/trunk has been updated. 4. A new build is available on the Flagstone Software web site, http://www.flagstonesoftware.com/downloads/index.html. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-08-06 19:06:42
|
Progress This Week: Received some useful additions from Glenn Marintes who is working on improving support for different character encodings: 1. Added character encoding for MS932 and CP932 character encodings which contain extensions to Shift-JIS. 2. Added a table mapping strings to CharacterEncodings allowing java.nio.charset.CharSet names to be used to select a given CharacterEncoding. API Changes: 1. Added undocumented action FS_COMMAND2. Bug Fixes: 1. On Movie encodeToStream is now public. Planned for Next Week: Vacation. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-30 19:19:33
|
All week was spent working on the new release of Translate. There are no outstanding bug fixes or issues so release is still on track for Sept 15th. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-24 19:29:46
|
Progress This Week: Another week working on Translate so the only change was the planned one reported last week. API Changes: EventHandler is now an Action (Ticket #154). This makes it easier to handle the objects returned by the ASCompiler class in Translate. Planned Change: MovieWriter will be renamed to MovieFormatter since that describes more accurately what it does. Regards, Stuart |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-19 08:21:45
|
Progress This Week: Most of the work this week was on refactoring (and improving Translate SWF). There are a couple of changes to Transform as a result: API Changes Removed the following convenience methods from EventHandler since they were used temporarily in the upgrade of Translate SWF to version 3: public static Set<Event> getMovieClipEvents(final int code) { public static Set<Event> getButtonEvents(final int code) { Planned Changes: Ticket #154. Change EventHandler to be an Action. EventHandler is currently treated as a basic datatype - it implements SWFEncodeable, Copyable<Action>. To avoid having to cast every object returned by the new version of the Translate Actionscript compiler EventHandler will be changed to implement Action (which is also an implementation of SWFEncodeable, Copyable<Action>). That allows the objects returned by ASCompiler to be a List of Actions rather than a list of Object. Adding EventHandlers to DefineButton2 or Place2 or Place3 will still require a cast but since the number of handlers is typically very small the performance cost (and effort to write the code) is negligable. See, https://sourceforge.net/apps/trac/transform-swf/ticket/154 Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-09 15:05:38
|
Progress This Week: 1. Code changes are being pushed regularly to the Sonatype Maven repository, https://oss.sonatype.org/content/groups/public/ 2. Translate SWF was ported to use classes in Transform rather than relying on its own private copies. API Changes: 1. Added a method to Push.Builder to clear the list of values so the builder can be reused. Code Changes: 1. Fixed bugs when decoding Shapes using ShapeData rather than decoding the individual ShapeRecords. The classes affected were: DefineFont, DefineFont2, DefineFont3, DefineShape, DefineShape2, DefineShape3, DefineShape4, DefineMorphShape, DefineMorphShape2, ShapeData. The SVN repository, Sonatype repository and downloads on the Flagstone web site were updated with these changes. 2. Relaxed/corrected the constraints on setter methods for GetUrl, GotoFrame and SetTarget to allow frame numbers of 0 and empty strings for urls and movieclip names. These changes were only committed to the SVN repository. Testing: 2. Updated MovideDecodeIT so it can be used with visualVM to profile movie decoding. Planned Changes: Ticket #150. Change pixel order in ImageDecoder from RGBA to ARGB. ARGB is the "natural" order for 32-bit pixels in Flash. When an image is decode from a BMP or PNG format image it is stored as RGBA requiring the ImageFilter method orderAlpha() to be applied before creating the Flash image definition. Changing the order of the pixels will avoid this extra step. Known Issues: Ticket #151. getImage() on BMPDecoder only returns pixels for indexed images. Ticket #152. getImage() on PNGDecoder only returns pixels for indexed images. In BMPDecoder and PNGDecoder if an indexed image is decoded any call to getImage() simply returns the indices into the colour table rather than the image. The getImage() method should return the complete image in ARGB format allowing the image to be processed. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-05 15:36:50
|
Several errors surfaced when decoding Shapes with a single ShapeData object rather than decoding the ShapeRecords (Line, Curve, ShapeStyle and ShapeStyle2 objects) individually. The classes affected are: DefineFont, DefineFont2, DefineFont3, DefineShape, DefineShape2, DefineShape3, DefineShape4, DefineMorphShape, DefineMorphShape2, ShapeData. 1. Patches for the affected classes are attached. 2. The 3.0-SNAPSHOT in the Sonatype public repository, https://oss.sonatype.org/content/groups/public/, has been updated. 3. The SVN repository, https://transform-swf.svn.sourceforge.net/svnroot/transform-swf/trunk has been updated. 4. A new build is available on the Flagstone Software web site, http://www.flagstonesoftware.com/downloads/index.html. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-03 14:59:58
|
Rather than deal with releases at regular intervals a more Maven-oriented approach will be taken from now on. This means that bug fixes and significant changes will be pushed out immediately - though planned changes will still be reported in advance, particularly when the changes affect the API and so might break existing code. If you are using Maven: All new snapshot releases will be deployed to the Sonatype public repository: https://oss.sonatype.org/content/groups/public/ Add the following entry to your POM <dependencies> .... <dependency> <groupId>com.flagstone</groupId> <artifactId>transform</artifactId> <version>3.0-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> Add the Sonatype public repository to your settings.xml: <profiles> ... <profile> <repositories> <repository> <id>FlagstoneSnapshots</id> <name>Flagstone Software Snapshots</name> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> <url>https://oss.sonatype.org/content/groups/public</url> <layout>default</layout> </repository> </repositories> </profile> </profiles> If you are not using Maven, you can still download the latest snapshot from the Flagstone web site: http://www.flagstonesoftware.com/downloads/index.html The snapshot files are not timestamped, e.g. transform-3.0-SNAPSHOT-dist.tar.gz rather than transform-3.0-20100703.133854-2-dist.tar.gz. This should make it simple to drop in new releases though at the risk of getting snapshots mixed up if there is a breaking change. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-02 15:37:42
|
Progress this week: 1. Released the first official beta version (3.0-b1) : http://www.flagstonesoftware.com/downloads/index.html. This is also available from the Maven Central Repository: http://repo2.maven.org/maven2/com/flagstone/transform/ Four bugs were reported after this release, patches are attached. All bug fixes were committed to the repository: https://transform-swf.svn.sourceforge.net/svnroot/transform-swf/trunk 2. Ported the Cookbook examples to user Version 3.0. These will be released when the production release is made but anyone who is interested can get in touch to get a copy. Either email me at smackay at the flagstone domain or get in touch via the web site: http://www.flagstonesoftware.com/contact.php Planned Changes: The following changes affect the API in relatively minor ways. They will be implemented and committed (all at the same time) in the next few days. 1. Ticket 146. Modify Canvas so using twips/pixels is selectable. Current when drawing paths with Canvas whether units are specified in twips or pixels is set in the constructor and cannot be changed. This is too restrictive so the constructor will change to a default e.g. Canvas() and accessor methods will be added to change the units on demand. see http://sourceforge.net/apps/trac/transform-swf/ticket/146 2. Ticket 147. Allow any object in MovieWriter The MovieWriter method: public void write(final MovieTag tag, final Writer writer) is unnecessarily restrictive, release the signature so any object can be pretty-printed: public void write(final Object obj, final Writer writer) see http://sourceforge.net/apps/trac/transform-swf/ticket/147 3. Ticket 148. Remove FRAMES attribute from Context When a movie is encoded or decoded the number of frames is kept in the Context and updated by ShowFrame when it is encoded or decoded. For decoding this is not necessary and the counting is not correct since all frames are counted - even the ones in movie clips. For encoding it is not clear that this is a premature optimization and simply checking the type of each object as it is encoded is sufficient. Frame counting will be removed from ShowFrame and Context and instead frames will be counted in prepareToEncode. see http://sourceforge.net/apps/trac/transform-swf/ticket/148 Planned For Next Week: Look into deploying the snapshots to the Sonatype repository to make it easier to keep up with changes. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-01 14:29:34
|
One porting the Cookbook examples ButtonShape was found to contain several bugs, specifically: 1. Default (unit) coordinate and colour transforms were not being defined in the constructor causing NullPointerExceptions to be thrown if these objects were not set. 2. Similarly the array for filters was not initialized. 3. The test to see whether the color transform should be encoded (it is for DefineButton2 not for DefineButton) was not testing whether the parent object type was set. 4. The test to see whether there were any filters defined was faulty. A patch is attached. ButtonSound contains a bug where the table matching events to sounds was not initialized causing a NullPointerException to be thrown when the object was encoded. A patch is also attached. The fixes have been committed to the repository. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-07-01 11:31:57
|
Some Flash files contain "corrupted" DefineMorphShape tags where a block of 33 zero bytes are included in the body of the tag. Transform tests explicitly for this and treats the tag as being empty allowing the remainder of the file to be decoded. The corrupted object is never used so movies can be decoded and re-encoded successfully. However after successive refactorings the block of zero bytes is still detected but not skipped over. The result is that when the block of zero bytes is read it appears to be an "end of movie" marker and so decoding of the movie terminates prematurely but no error is reported. Changing line 219-221 of DefineMorphShape.java from if (length - coder.bytesRead() != 33) { coder.check(length); } to if (length - coder.bytesRead() == 33) { coder.skip(33); } else { coder.check(length); } fixes this bug. A patch file is also included that performs this task. The repository has been updated. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-30 13:26:24
|
The constructor that decodes a TextSettings assumes that the header (type and length fields) is always in the short form, i.e. 16-bits long. This is not always the case, even though the length of an encoded object can never be more than 14 bytes. The code should be changed from: public TextSettings(final SWFDecoder coder) throws IOException { coder.readUnsignedShort(); identifier = coder.readUnsignedShort(); rendering = coder.readByte(); thickness = coder.readInt(); sharpness = coder.readInt(); coder.readByte(); } to public TextSettings(final SWFDecoder coder) throws IOException { int length = coder.readUnsignedShort() & Coder.LENGTH_FIELD; if (length == Coder.IS_EXTENDED) { length = coder.readInt(); } identifier = coder.readUnsignedShort(); rendering = coder.readByte(); thickness = coder.readInt(); sharpness = coder.readInt(); coder.readByte(); } A patch is attached for this change. The SVN repository has also been updated. A new release (for download and on the Maven Central Repository) will not be available until a few more bugs have accumulated. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-29 13:51:43
|
The first beta release of Transform SWF 3.0 is now available from the Flagstone web site: http://flagstonesoftware.com/downloads/index.html Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-26 09:30:33
|
Progress This Week: More code refactoring and general polishing. API Changes: 1. Moved defineEnclosingShape from ImageFactory into a new class ImageShape. Methods were added to set default border styles and registration points to make it more convenient when adding multiple images to amovie. 2. Moved the methods in BufferedImageDecoder to create a BufferedImage from a Flash image definition to a new class BufferedImageEncoder. 3. Moved getImageAsBlocks from ImageFactory and create a new class ImageBlocker. 4. Added the following methods to the ShapeTag interface: public ShapeTag add(final LineStyle style) public ShapeTag add(final FillStyle style) The add(final LineStyle style) method on all shape definitions was updated and explicit checks for LineStyle1 or LineStyle2 were added so only the correct style is used. 5. Added two enums to com.flagstone.transform.datatype: HorizontalAlign is used to set the horizontal alignment for text in DefineTextField and to set the registration point in images. VerticalAlign is used to setting the registration point in images. DefineTextField was updated to use the new HorizontalAlign enum. Code Changes: 1. Cleaned up or explicitly suppressed all PMD warnings. 2. Ticket #125 - Add support for decoding files with hidden actionscript. This was done by changing the SWFFactory to pass in the list where the decoded object will be added rather than returning the object itself. This makes it easier to write custom decoders to handle the obfuscated files. There will be a cookbook example added to show how to do this. 3. Completed Ticket 144 - Update Font to use highest character. Now the tables used to store the glyphs are size correctly rather than relying on a default size (64K). 4. Decoding of AWT fonts was speeded up by only decoding the missing glyph once. Testing: 1. Added integration test for displaying text from a font definition loaded from a Flash file. Added test fonts (including a .fla file for generating new font files) for the Bitstream Vera fonts. 2. Expanded the suite of real-world Flash files use for testing to over 1,000 files. Only 6 failures were detected - at least 2 were the result of obfuscation to mix blocks of actions in with MovieTag objects on the main timeline of the movie. 3. Added integration test for BufferedImageEncoder, generating a BufferedImage from a Flash image definition. 4. Cleaned up unit tests packages so they match the package hierarchy of the source files. 5. Renamed integration tests and test report pages to match the names of the classes under test. Documentation: Completed Ticket 143: Added documentation for Spread. Removed the stylesheet used for javadocs so the default one is used - the generated pages are now easier to read. Deployment: A snapshot release is now deployed on the Open Source Maven repository hosted by Sonatype: http://oss.sonatype.org/content/groups/public/ <dependency> <groupId>com.flagstone</groupId> <artifactId>transform</artifactId> <version>3.0-SNAPSHOT</version> </dependency> Planned For Next Week: The first beta release. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-19 10:49:57
|
Progess this week: More generall polishing with most of the effort was spent on getting all the methods and classes documented. API Changes: Corrected getLanguage() / setLanguage() accessor methods on DefineFont2, DefineFont3 and FontInfo2 to use the Language enum rather than ints. Removed getWidth() and getHeight() methods from text and shapes. This was old code left over from an interface definition called Displayable which returned the dimensions of visible objects but was never used. Changed DefineFontName to FontName since it contains information about and font and is not a definition tag. Code Changes: Added the name used by Java to identify a character encoding as an attribute to CharacterEncoding. Updated SWFEncoder / SWFDecoder so setEncoding() uses a CharacterEncoding argument rather than a String. This makes sure only character encodings supported in Flash can be used. Added a DEBUG flag to Constants.java so calls to SWFEncoder methods to verify an object has been encoded correctly can be disabled for production code. Both the methods used to decode and encode objects check the number of bytes encoded matches the expected number - which is an easy way to catch bugs. For decoding the check always remaining in place so badly formed files can be caught. For encoding now the checks can be turned on for development then turned off for releases - giving a small but useful increase in performance. Moved MovieTypes from com.flagstone.transform.coder to com.flagstone.transform. Documentation: Added javadoc comments for all the public methods and constants. Updated the class descriptions. The aim is to keep them simple and provide examples in the cookbook that illustrate better what each class does. Testing: Cleaned up testing of encoder and decoder classes. Planned for next week: More testing with real-world Flash files. Refactoring the font, image and sound decoders to reduce the complexity of the methods. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-14 06:55:53
|
Progress This Week: Released an alpha version. This is "work-in-progress" release albeit very stable and certainly good enough for developing code with. Currently, requested features are being implemented - hence the API changes, see below - and once those have been completed the release phase will move to beta which is still planned for the end of the month. API Changes: Added ShapeTag to support a common interface to all the different shapes in Flash: DefineShape, DefineShape2, DefineShape3, DefineShape4, DefineMorphShape, DefineMorphShape2. LineStyle was changed to LineStyle1 with LineStyle changed to an interface to allow ShapeTag to be created. The methods on the morph shapes for accessing the starting shape were renamed to match the ShapeTag interface. Added StaticTextTag to provide a common interface for accessing the objects that define static text: DefineText, DefineText2. Code Changes: Cleaned up most of the magic numbers. Refactored the constants in SWF (and renamed it to Constants). Most values were simply limitations on the file format rather than individual constraints on different types of data so the constants were condensed into UNSIGNED_SHORT_MAX, SIGNED_SHORT_MIN and SIGNED_SHORT_MAX and moved to the Coder class - which now contains constants covering most of the magic numbers founds in the library. Simplified CoderException to remove name attribute. The toString() method now returns the location as a hexadecimal number making it easy to find hte "offending" tag using Describe SWF. Decoders reporting unsupported fill styles or filters now report the location using the SWFDecoder method mark() which now returns the current location. Testing: Expanded the suite of real-world Flash files. When performing a decode - encode- re-decode cycle only 5 errors are detected out of 667 files. Planned For This Week: More code polishing to get ready for a beta release. Regards, Stuart -- Flagstone Software Ltd. |
From: News on r. b. a. p. f. T. S. f. J. <tra...@li...> - 2010-06-07 15:32:24
|
After a elephantine gestation period, an alpha release of Transform SWF 3.0 is available from the downloads page: http://www.flagstonesoftware.com/downloads/index.html Despite the alpha status this release is extremely robust - generally the code is able to deal with real-world Flash files with only a few issues. Moving to completely stream based I/O means that the code is now able to handle Flash files which are now several orders of magnitude larger than those available when the current release 2.3 was first written. Performance seems to be greatly increased compared to running the 2.3 code on the same JVM; version but that is a more subjective measure. The current plan is to keep the code in alpha for the next few weeks - probably unitl the end of June - to continue with general clean-up and polishing and deal with any problems that arise, then release a beta over the summer when most of the work should be complete. A full production release will be in early September. Regards, Stuart -- Flagstone Software Ltd. |