Re: Animation timing and set

Jon,

 > I haven't had time to study your comments in depth, but one of the 
 > engineers at Adobe familiar with SVG animation provided the following
 > response:

Thanks for the quick reply.

 > It looks to me like he's saying we *should* handle the timing attributes 
 > for 'animate' and 'set' differently, not that we *do*. I think he's 
 > suggesting that he wants the <set> element to be ignored when processing a 
 > "prev" specification (as in prev.end). This doesn't make sense to me. I can 
 > only think that he doesn't understand that a <set> element can also have 
 > an "end" or "dur" attribute, and therefore thinks that prev.end would never 
 > apply to <set> elements. But that's wrong, since you'd either have to also 
 > disallow prev.begins on <set>s, or be inconsistent and allow .begin 
 > references but not .end references on <set> elements.

No, I actually mean the opposite: to treat <set> MORE consistently with
<animate> - I agree totally with your engineer.  Not to ignore <set>s,
but to allow them to be used more similarly to <animate>.  Probably the
use of the word "transparent" in my original wording was confusing - I
meant to say "visible, but appearing exactly like a zero duration
animation".


 > He can easily accomplish what he's trying to do by referencing the 
 > "begin" event rather than the "end" event. So instead of his:
 > 
 > <animate begin="prev.end"...>
 > <set     begin="prev.end"...>
 > <animate begin="prev.end"...>  // Incorrectly attempts to reference first 
 >                                // <animate>.
 > 
 > he can do:
 > 
 > <animate begin="prev.end"...>
 > <set     begin="prev.end"...>
 > <animate begin="prev.begin"...>  // Same as referencing first <animate>'s 
 >                                  // end

Yes, that achieves what I want.  However, in terms of consistent syntax
I would have prefered to write "prev.end" in the third line, which a
novice would have assumed would (a) work and (b) have the same effect as
above.  That is, one would assume that "prev.begin" is interchangable
with "prev.end" when the prev refers to a <set>.

Why does the "begin" event work, but the "end" event doesn't?




 > As for his last comment, I don't understand what he means by "doesn't seem 
 > to recognise any <animate> statements with dur="0s"". I tried the 
 > following, and it works fine. Maybe you could get her to submit a sample of 
 > what he's talking about?

My example is the following - all four <animate> commands are the same
except for different duration attributes.  I expect all the circles to
end up at a cx position of 200.  The green one jumps across very quickly
and the red one moves slowly across (both as expected), but the blue and
black ones do not move at all.  This is under SVG Viewer 2.0 build 55.

<svg>
  <circle cx="100" cy="100" r="20" fill="red">
    <animate attributeName="cx" from="100" to="200"
     begin="1s" dur="2s" fill="freeze"/>
  </circle>
  <circle cx="100" cy="150" r="20" fill="green">
    <animate attributeName="cx" from="100" to="200"
     begin="1s" dur="0.001s" fill="freeze"/>
  </circle>
  <circle cx="100" cy="200" r="20" fill="blue">
    <animate attributeName="cx" from="100" to="200"
     begin="1s" dur="0.0001s" fill="freeze"/>
  </circle>
  <circle cx="100" cy="250" r="20" fill="black">
    <animate attributeName="cx" from="100" to="200"
     begin="1s" dur="0s" fill="freeze"/>
  </circle>
</svg>


I hope you can clear up these two mysteries for me.
Thanks.

Hoylen
-- 
__________________________________________________ Dr Hoylen Sue
h.sue@dstc.edu.au                        http://www.dstc.edu.au/
DSTC Pty Ltd --- Australian W3C Office           +61 7 3365 4310

Received on Friday, 27 July 2001 05:34:09 UTC