- 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:48 UTC