Way cool. While it's still incomplete, I've got the loader and slideshow viewer somewhat completed in flash. The coolest part is that now I can add code to my site that will allow me to script movies with a simple CGI based interface.
See the progress.
It does the following so far:
1. Loads an XML file from the server that describes the sequence of audio and images. The slideshow is broken down into multiple components as thematically, a presentation can be broken down into multiple parts. My plan has been to document my parents' history and this is a major component of the process: While my parents share a story, I can show images related to their narration. Useful too is how it will allow me to tie audio to a specific image. If they talk about riding the train, I can present images of the the train they rode with light foley. Multiple scenes in a single XML file is handy too: I can break stories up into logical units to avoid forcing the user to sit through the loading of an entire movie.
2. The flash movie then parses the file and loads of all required audio and images for a scene presenting a little progress bar informing the users of progress. Asyncronous downloads are easy in flash but figuring out how to monitor them was a bit of a pain. Lazy still, I haven't included proper error trapping so if things fail... mystery! :D
3. Finally, it creates a timeline and launches the events in order. With all data loaded into memory, once the slideshow starts, no lags occur during playback (haha! take that! Latency monster, I shall brute force my sword of bludgeoning into thee!). Eventually, I will probably have to tighten up the timing and link audio playback rate shift with the internal clock but that'll be something for the future.
What must still be done is the addition of captioning and start/stop/jumping between slides. That'll be much tricker but now that I'm used to the language, things should move along fairly quickly. If you're curious have a look see at some of the code with the warning that
my flash code can get ugly!
Cool thing though is that as sequence information is stored in an XML file, I can release the SWF binary for others to use and it won't require a CGI/
perl/
ming for proper functionality! Not to say there aren't benefits for having a
LAMP environment. Currently,
the xml script is auto generated to show the
last 50 images on my site and links-in the audio associated with the images (how's that for integrated photoblogging software. Nyah!)
Also, if you've never seen it before, may I suggest the
flash slideshow section of the site? These are the early attempts at making slideshows and are pretty much all music/image/caption based and include no audio capture (based upon an earlier version of a script that had an
extreme propensity of being tempermental and insisted on being rubbed nicely before functioning)