- From: Daniel Holbert <dholbert@mozilla.com>
- Date: Mon, 05 Apr 2010 11:59:16 -0700
- To: www-svg@w3.org
- CC: "Dr. Olaf Hoffmann" <Dr.O.Hoffmann@gmx.de>, vbs85@gmx.de
On 04/05/2010 10:48 AM, Dr. Olaf Hoffmann wrote: > It is true, that is, why I have written additive="sum". D'oh! I overlooked the "additive="sum" in your email. Objection withdrawn -- I agree about the by/values equivalence that you stated. :) Per the rest of my last email, I've now reviewed the animateTransform definiton at: http://www.w3.org/TR/SVG11/animate.html#AnimateTransformElement and it makes more sense to me now. It looks like the spec explains this similarly to how Olaf did -- |additive="sum"| (and by extension, by-animation) is supposed to *append* an additional post-multiplication matrix, rather than actually modifying the underlying 'transform' attribute. And that's what causes the unexpected behavior. In addition to the situation Dirk brought up, we get the following paradoxical but correct-according-to-the-spec behavior: a) The animation... <animateTransform type="scale" by="0".../> ...makes its target disappear. b) If you stack N copies of... <animateTransform type="scale" by="1" fill="freeze" .../> ...all targeting the same element, the final frozen result will be at scale=1 (as opposed to scale=N+1 or scale=N). (In part (b), if we had N animations with |by="2"| instead of |by="1"|, we'd end up with a result at scale=2^N) Anyway, I agree with Dirk that the existing Opera & Firefox-nightly behavior isn't immediately intuitive, but it does appear spec-correct (based on the animateTransform-specific text) and it does make more sense after reviewing that chunk of spec. ~Daniel
Received on Monday, 5 April 2010 18:59:50 UTC