- From: Brian Birtles <bbirtles@mozilla.com>
- Date: Tue, 27 May 2014 11:01:08 +0900
- To: "public-fx@w3.org" <public-fx@w3.org>
- CC: "www-style@w3.org" <www-style@w3.org>, 'www-svg' <www-svg@w3.org>
Dear all, The editors of the Web Animations specification would like to publish another Working Draft based on the current Editor's Draft. A (very long) list of changes is included at the end of this mail. While there are still a number of planned changes we think another working draft is well overdue. Please see the proposed working draft here: http://drafts.fxtf.org/web-animations/WD-web-animations-20140605/ There has been interest in deferring some functionality such as animation groups into a Level 2 specification. This would greatly simplify the current specification. We plan to do this shortly after publishing the next WD. Other changes anticipated after this next WD include: * Allowing new animations to be timed from when they first render, rather than the current time * Providing a better API for accessing computed timing * Switching to Bikeshed (so named anchors into the ED actually work) * Addressing remaining TAG feedback We plan to publish on June 5 unless there are any objections. Please send feedback to public-fx@w3.org. Best regards, Brian The following changes have been made since the 25 June 2013 Working Draft. * Changed the basic unit of time from seconds to milliseconds. * Altered the zero time for the document timeline to correspond to the navigationStart moment defined by [NAVIGATION-TIMING]. * Altered the definition of effective current time. * Removed the ‘time drift’ property of players and redefined play control algorithms to simply adjust the player start time. * Introduced limiting behavior to players so that the current time behaves more like a DVD or cassette player. * Removed timing events and added player events instead. * Renamed timed items to animation nodes. * Introduced an end delay property to animation nodes. * Reworked the description of animation node states to include phases as well. Renamed the active state to the in play state. * Changed the behavior of fill modes so that children that are clipped part-way through their active interval by a parent animation group only fill if they have the corresponding fill mode set. * Fixed a bug in the calculation of the current iteration for zero-length iteration durations. * Added extra wording so that an animation node with a step timing function whose transition point coincides with either end of the active interval produces the expected value when filling. * Fixed a bug in the calculation of the transformed time so that children of groups with infinite duration will play. * Fixed a bug in the calculation of the time fraction for zero-length iteration durations (section 3.14.1 Calculating the time fraction). * Clarified behavior in a number of cases where a value of infinity may be multiplied with zero. * Renamed timing groups, animation groups. Parallel timing groups are now simply animation groups, and sequence timing groups are now animation sequences. * Rewrote and re-organized most of the animation model section (see section 4. Animation model) to provide greater internal consistency. CSS properties are now animatable by default and procedures for interpolation, addition, and distance computation are now defined for all cases (see section 4.1.2 Procedures for animating properties). * Renamed the target element of an animation to the animation target. * Made the prioritization of animtions no longer dependent on the player start time (see section 4.2.1 The animation stack). * Made the custom animation priority specific to a player and renamed it to the custom player priority. * Made the composite operation a property of all animation effects. * Added the accumulate composite operation. * Replaced the accumulation operation with an iteration composite operation on animation effects. * Added per-keyframe timing functions. * Replaced paced timing functions with spacing behavior that can either evenly distribute values or space them to maintain an even rate of change. * Added spacing modes, spacing points, and point offsets to motion path animation effects in order to support all the features of SVG's animateMotion element. * Clarified the conditions for calling custom effects. * Removed custom effect priorities. * Renamed the Timeline interface to AnimationTimeline. * Removed both versions of toTimelineTime from the AnimationTimeline interface. * Renamed getCurrentPlayers on the AnimationTimeline interface to getAnimationPlayers. * Renamed Player interface to AnimationPlayer. Added onfinish to the AnimationPlayer interface as the event handler for the new finish player event and made the AnimationPlayer interface inherit from EventTarget. * Added the following members to the AnimationPlayer interface: - finished - cancel() - finish() - play() - pause() - reverse() * Made the paused member of the AnimationPlayer interface readonly. * Renamed the TimedItem interface to AnimationNode. * Removed the event handlers from AnimationNode since timing events have been replaced with player events. Similarly, made the AnimationNode interface no longer inherit from EventTarget. * Marked AnimationNode.player as at risk. * Renamed the specified attribute on AnimationNode to timing. * Renamed the Timing interface to AnimationTiming and likewise the TimingInput dictionary to AnimationTimingInput. * Renamed the following members of the AnimationTiming interface and AnimationTimingInput dictionary: iterationDuration → duration startDelay → delay fillMode → fill iterationCount → iterations timingFunction → easing * Removed the activeDuration member of the AnimationTimingInput dictionary and AnimationTiming interface and introduced endDelay to both. * Introduced an auto value for FillMode and made it the default value for fill on AnimationTimingInput. * Added timing function syntax directly to this specification rather than referring to [CSS3-TRANSITIONS]. * Removed the abstract TimingGroup interface and renamed ParGroup to AnimationGroup. * Renamed SeqGroup to AnimationSequence and made it inherit from AnimationGroup. * Changed the type of the effect argument to the Animation constructor and the Animatable.animate method to object? and defined its processing. * Removed null as a possible value for the timing parameter of the AnimationGroup, AnimationSequence and Animation constructors and the Animatable.animate method. * Made the target member of the Animation interface no longer readonly. * Removed the AnimationTarget typedef and introduced the Animatable interface in its place. * Made Animatable.animate return an AnimationPlayer instead of an Animation. * Marked Animatable.getCurrentAnimations as at risk. * Moved the composite member of KeyframeEffect and MotionPathEffect to the base class, AnimationEffect. * Renamed KeyframeAnimationEffect to KeyframeEffect. * Changed the constructor for KeyframeEffect to take a KeyframeEffectOptions dictionary object. * Added a spacing member to both KeyframeEffect and KeyframeEffectOptions to specify spacing behavior. * Made getFrames on KeyframeEffect return the computed keyframe offset as computedOffset and apply the normalization of keyframes defined in section 5.14.6 Normalizing a sequence of keyframes. * Introduced the ComputedKeyframe dictionary for representing the return values from KeyframeEffect.getFrames. * Removed the OneOrMoreKeyframes typedef since it is no longer a valid WebIDL union. Replaced useage of OneOrMoreKeyframes with object and defined its processing. * Made the normalization of keyframes no longer fill in the offset of a keyframe. This is now incorporated in section 4.3.1 Spacing keyframes which is now a core part of the model. * Defined the procedure used for iterating of the properties of a passed in keyframe object as using [[Enumerate]]. * Made the normalization of keyframes sort keyframes if all keyframe offset are specified or otherwise throw an exception if the frames are not loosely sorted by offset and not all offsets are specified since the desired result in this case is ambiguous. * Added the easing member to the Keyframe dictionary. * Renamed path animation effects to motion path animation effects and likewise PathAnimationEffect to MotionPathEffect. * Changed the constructor for MotionPathEffect to take a MotionPathEffectOptions dictionary object. * Added the spacing member to the MotionPathEffect interface. * Replaced the CustomEffect callback interface with the EffectCallback callback function and replaced the currentIteration and target parameters with the Animation object that is being sampled. * Renamed getCurrentPlayers on the Element interface to getAnimationPlayers. * Removed the PseudoElementReference interface to use the PseudoElement interface from CSSOM instead. * Revised section 5.23 Script execution and live updates to the model so that computed style reflects the current state of the model. * Clarified the interaction between samples of the timing model and requestAnimationFrame callbacks.
Received on Tuesday, 27 May 2014 02:01:51 UTC