the skinny...

 

    status

    01-01-00
    I dunno you go away on holiday for one week and whilst you're away you get Slashdotted ™. There's been a fair bit of interest and I've turned on directory listing in the stuff directory so that people can have a snoop around. I've also put some demo code up.

    I did actually start working on the project again before Christmas after a long break when I was away travelling around South East Asia and Australia and then when I got back I had to start a new job. I've got some good ideas about how to turn this from a proof of concept into a production quality module and when I get some time I'll work on it more. Unless anybody wants to offer me a job to work on it full time of course <grin>

    01-07-00
    Ok, it's true there hasn't been an update here for ages but that's because I've been working so hard on it that I haven't had time to update this page.

    So, the first beta is done. Yep, that's right. I've finished it. All tags are parsed (well, apart from MP3 frames) and you can generate SWF files. I have updated the site, written a fair whack about it for my college dissertation and stuck a load of demo files up. It's all available for download in the stuff directory. There are some demos up aswell.

    I'm away on holiday for a while but I currently own the copyright (which I persuaded my college to let me have) and quite a few people have expressed an interest in working on it. Mark Fowler is giving a talk on it at YAPC::Europe so hopefully that should spark more interest

    So take a look around and have fun. Or something.

    Simon Wistow July,2000

     

    about

    Macromedia recently opened up the file format for their SWF movies. Despite some rather horrific errors in the original spec, reverse engineering has been done and a correct version, along with an updated version of swfparse.cpp, an app for parsing SWF files. SWF is a vector based movie format which has become the de facto standard for web based animations. Unfortunately, unless you buy the very expensive 'Generator' from Macromedia it cannot interact with the user at a CGI level (so for example, you cannot type in your name in a form and have that appear on the screen).

    I started this project when the company I work for was looking into dynamic Web based animation. Mark Fowler (who owns TwoShortPlanks, cheers Mark), who'd been doing a lot of work with Java and Flash, came up with the idea of decompiling SWF files to XML. We talked about it a bit but nothing really came of it. Since I have to do an individual, final year project at College however the idea came up again. However it has been expanded. The plan now is to have a Flash::Object which is an internal representation of an SWF/Flash movie. Tags (and hence objects) will be able to be manipulated, added and removed. In this way it will be possible to create an SWF file from scratch. In addition the object can be 'loaded' by any number of filter modules. The most obvious input filter is an SWF file but others could include

    • XML
    • Out put from SWFparse
    In the same way the object can be 'dumped' via any number of output filters. Again, SWF, XML and SWFparse are the obvious filters but one interesting one would be to have something that dumps a Perl script which, when run, would create the SWF file from scratch.

    I also plan to have variable substitution, so that when you create your SWF file you could have a text string which has something like "hello $name" in it. By loading this into an SWF object and then doing a call like

      $swf->substitute('name','simon');
    and when the SWF file was dumped the text would read "hello simon".

    All feature ideas are gratefully received.

     

Perl::Flash

 

    Front page : Latest news and about the project

    History : past updates

    Development : Useful SWF files and information

    Links : Similar projects and useful links

    Stuff : the meat and potatoes, the code, demoes and documentation

    Demos : the demo page

    Roadmap : a suggested plan of action for the future

     

    Todo : what's left to be done