Hi there,

I am currently developing a gadget which, among its functions,
involves the loading and displaying of a short (5-15 frames) animation
on certain events.

On its own that sounds straightforward enough, but here's the twist:
there's more than one animation. In fact, there are in the region
2,000 different animations - so, for a start, the animation files
cannot be included in the package (as it swells to an unacceptable 20
Mb). As the animations will only be required semi-regularly, they will
be stored online, and the gadget will pull the relevant one down when
necessary.

Again, on paper this doesn't sound too tall an order, but I've been
running into brick wall after brick wall trying to get this to happen
smoothly - and am now almost out of ideas. Here's what I've tried so
far:

1. Store the animations online as animated gifs. Pull down the
relevant one in an XMLHttpRequest, and load it into an image object.

Problem: The image is fetched and loaded fine, but the animation
doesn't animate - only the static first frame is shown. On further
reading, it turns out that Google Gadgets do not support animated
gifs.


2. Store the animations as a sequence of single-frame images (PNGs).
Pull down the data for multiple images in a single request, then split
the data up into separate images, load them into an array of image
objects, and use the native animation controls to step through the
frames in sequence. (This was the subject of my earlier thread -
http://groups.google.com/group/google-desktop-developer/browse_thread/thread/264eab0d67ca5a59
)

Problem: The fetch is successful, but Javascript lacks the ability to
properly handle binary data, so the stream cannot be split into
individual images. Despite some creative attempts at a workaround
(such as base64-encoding the whole stream), it appears that, once
split into string variables, the data cannot be loaded into image
objects as images.


3. Store the animations as a sequence of single-frame images (PNGs),
as above. Pull down all the required images in a series of
simultaneous XMLHttpRequests. Load each image into an array of image
objects, and use the animation controls to play them as an animation.

Problem: More than 2 simultaneous requests is apparently ill-advised,
and if even one fails, the animation cannot play. The whole thing just
feels... sloppy.


4. Build the animations as Flash swf files. Pull down the relevant
file in an XMLHttpRequest, and load it into a embedded object in the
gadget.

Problem: Works perfectly! - except ... the path to the swf file is
locked in. There seems to be no way to change its properties so it can
load a different file when required.


The final option, which I'm now seriously considering, is to just
rebuild the whole gadget as a Flash app, and embed it - much like the
Google slideshow gadget that's included with the Sidebar. I don't
really want to do it this way, as I've spent so much times getting to
grips with the gadgets development framework - but it's starting to
appear as if the environment is just too limited for my purposes.

Does anyone have any thoughts on the above? Have I completely missed
something quite straightforward?

Thanks a lot,

- Tim
-- 
You received this message because you are subscribed to the Google Groups 
"Google Desktop Developer Group" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-desktop-developer?hl=en.


Reply via email to