I wrote a bunch of handlers that weren't working and began to have
suspicions. Henry and I looked over events in LzSprite
and realized a few things:
1. No events at all are being sent from the DHTML version of
LzSprite. They're not even partially implemented.
2. Although many events are being sent from the SWF version of
LzSprite, the definition of onlastframe doesn't work as
expected in some cases (e.g.noughts.lzx) because the 'last frame' and
the 'last frame displayed' in an animation may
not be the same thing. In particular, nought.swf and cross.swf have
internal javascript that sets their last frame to be 8,
even though there are 15 or so frames, so it never gets to the truly
last frame.
I'm getting a sense of how the kernel code works and I'm willing to
take on adding the features during the next development cycle
(assuming generous collaboration is available).