Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

28
Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation

Transcript of Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Page 1: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Legalese

Flash and Generator are acknowledged trademarks of

Macromedia Corporation

Page 2: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Manipulating SWFfiles with Perl

Simon [email protected]

Flash in the Pan

Page 3: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Contents

• About the SWF file format

• The need for manipulation tools

• The problems encountered

• Achievements

• Applications

• The future

• Conclusion

Page 4: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

About theSWF file format

Page 5: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Flash?

• A little bit of History– FutureSplash was originally

created by FutureWave– FutureWave bought by MacroMedia,

FutureSplash renamed Flash– current version is 5– Flash file format (SWF) was

open-sourced in 1998

Page 6: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Flash? cont.

• Vector animation format– shapes and lines

– bitmaps (JPEGs, PNGs)

– sounds (ADPCMs, MP3s)

• These are known as objects– analogous to actors,

scenery and soundtrack

Page 7: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Flash? cont.

• Keeping with the film analogy– SWF format is a script to describe

and control the ‘actors’

– divided into frames

– frames divided into tags• these define and control objects

– 34 different tags, using 17 data-types

Page 8: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Flash? cont.

• Web Oriented– highly compressed

– plug-in

– pseudo-streaming

Page 9: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Flash? cont.

• Scriptable– control events, within movie

– reactive, not truly dynamic

Page 10: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The Idea

• I needed– a tool for manipulating Flash files

– a way of creating Flash files from scratch

– some way of converting between formats• abstract representation

Page 11: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The need for manipulation tools

Page 12: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Why?

• Can’t create totally dynamic content– prevents uses on

database applications

• Because it’s complicated– it can’t be used within other

applications, the facilities don’t exist– you can't do some things

with the existing interface

• Storing SWF binary is not always appropriate

Page 13: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The Competition

• Macromedia Generator– limited

• modification not creation

– expensive (very)• and you still need Flash Authoring tool

– slow

– resource intensive

Page 14: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The Competition cont.

• Ming– enemy of flash

– unfinished, only generates

– not low level enough

Page 15: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The Competition cont.

• Middlesoft SDK– limited to C++ on Windows

– complicated

– restrictive licensing

– creation only

Page 16: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Problems encountered

Page 17: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Problems

• Specification was wrong– required experimentation– incomplete, only dealt with version 3

• Very few knowledgeable people– NDAs– lack of community

• Text representation• libswf very unstable

– author unavailable

Page 18: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Achievements

Page 19: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Achievements

SWFParser

AbstractObject

SWFWriter

Page 20: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Applications

Page 21: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Applications

• Broadband access– richer interfaces

• Database driven flash websites– e.g. animated weather maps

• Batch generation– personalised invitations

Page 22: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Applications cont.

• Library for flash authoring application

• Extraction of resources – images, sound, text

• Conversion between other formats– save as SVG and MNG

Page 23: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

The future

Page 24: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Future Work

• Improve interface to the Object– simplify– functions for various effects

• Update Libraries to Flash 5– legalities of reverse engineering

• More Input/Output filters– improve the ones already done

Page 25: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Conclusions

Page 26: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Conclusions

• A lot has been achieved– but things still to do

• Interest from industry and community

• Many real-world applications

• Development will continue

Page 27: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Conclusions cont.

• Structure is sound

• Perl was appropriate– good support from user base

– hundreds of pre-built libraries

– performance issues

Page 28: Legalese Flash and Generator are acknowledged trademarks of Macromedia Corporation.

Manipulating SWFfiles with Perl

Simon [email protected]

Flash in the Pan