SMIL:Challenges

Following is a collection of difficulties encountered in implementing and authoring SMIL as well as some wishes for the future.

Pain points

  • Discrete to-animation is counter-intuitive. As discussed in bug 544855, particularly comments 11 and 12 and the referenced test cases, the behaviour defined here is likely to cause headaches for authors.

Future features

  • The swelling button use case. That is, create a button that swells over a period of 1s on mouseover, and shrinks at the same rate back to its original size on mouseout. Currently this does not appear to be possible if the mouseout occurs midway through the swelling phase. If the mouseout occurs after 0.3s, it should take 0.3s to return to the original size.
  • Cancelling a chain of animations. For example: A, B, and C are configured in a chain so that, e.g. B.begin = A.end+1s; C.begin=B.begin+3s. A has both a simple duration and an end event, e.g. <animate dur="5s" end="elem.mouseout" .../>
    We'd like to distinguish between A running to completion (in which case we want B and C to play) and A being cancelled via a mouse out event (in which case we DON'T want B and C to play). This is very tricky to achieve with SMIL animation but is perhaps easy with SMIL time containers (e.g. <seq> -- although I'm not sure that <seq> will do the job when we want B.begin = A.end-1s)