- From: Brian Birtles <bbirtles@mozilla.com>
- Date: Tue, 13 Sep 2016 13:19:16 +0900
- To: "public-fx@w3.org" <public-fx@w3.org>
Hi, For the first time in history specberus and bikeshed agree on the format of the Web Animations spec AND I have a publication token. I intend to celebrate this occasion by publishing another working draft of this specification. Furthermore, now that this more streamlined publication system is (hopefully) working, I intend to update the WD more frequently and use this mail as a standing group decision. The version I intend to publish is here: https://w3c.github.io/web-animations/wd/Overview.html A summary of notable changes since the previous working draft is included at the end of this mail. Best regards, Brian The following changes have been made since the 7 July 2015 Working Draft: * Greatly simplified the procedure to set the timeline of an animation to be more predictable and consistent. * Made the procedure to set the animation start time set the did seek flag to true. * Made the procedure to play an animation take an auto-rewind flag so that CSS Animations can re-use this procedure without invoking the rewinding behavior. * Made the procedure to pause an animation preserve the hold time when completing the pause operation if it is already set. This fixes a bug where pausing a finished animation would case the current time to change. * Made the procedure to update an animation’s finished state conditionally check the finished state in an asynchronous manner based on the synchronously notify flag. - Also, made this procedure only replace the current finished promise if it has already been resolved. - Further fixed some bugs in the handling of negative playback rates. * Made the procedure to finish an animation correctly handle pause-pending animations and delay updating the finished state until the end of the procedure. * Reverted the change to the definition of an animation effect’s end time to no longer clamp the time to zero. * Reworked the definition of animation phase boundaries to reflect the playback rate when at a phase boundary (see §3.6.5 Animation effect phases and states). * Also reworked the definition of animation phase boundaries to make them line up with finish times to avoid a bug where a finished animation playing in reverse would ignore the fill mode (see §3.6.5 Animation effect phases and states and issue #166). * Significantly reworked the core animation effect timing calculations to operate on a fraction value instead of a time-based value. This makes a number of edge cases well-defined and simplifies a lot of the extra handling previously required for zero-duration animations. * Updated the procedure to calculate the current iteration to correctly handle zero-duration animation effects that are in the after phase. * Added §3.5.20 Animation events. * Removed ability to animate DOM attributes since the number of SVG attributes that are commonly animated that have not been promoted to CSS properties is steadily shrinking and the remaining attributes are not well supported and introduce significant complexity (e.g. the class attribute). * Replaced the originTime parameter to the DocumentTimeline() constructor with a DocumentTimelineOptions dictionary parameter so that the set of options can be more easily extended by other specifications. * Removed the clone() method from KeyframeEffectReadOnly and added the KeyframeEffectReadOnly(source) and KeyframeEffect(source) constructors instead. * Renamed “animation behavior” to animation type (the existing “animation type” concept was simultaneously renamed to animation class as mentioned below). * Specified the effect value of a keyframe effect when the iteration progress is unresolved (see §4.4.4 The effect value of a keyframe effect). * Renamed “animation type” to animation class. * Updated the Animation interface: - Made the Animation interface inherit from EventTarget. - Updated the Animation() constructor so that if a timeline is not provided, the default document timeline of the active document is used. - Added the id attribute. - Added the onfinish and oncancel attributes for registering animation event handlers. - Removed the behavior that required currentTime to be null when the animation has a pending pause task. * Replaced the computedTiming parameter on the AnimationEffectReadOnly interface with a getComputedTiming() method. * Changed the handling of timing and options parameters such that invalid values are no longer stored but, instead, cause a TypeError exception to be thrown. * Changed the type of the progress member of the ComputedTimingProperties dictionary from unrestricted double? to double?. * Renamed getFrames() and setKeyframes() on the KeyframeEffectReadOnly and KeyframeEffect interfaces to getKeyframes() and setKeyframes() respectively, and renamed the frames argument to keyframes. * Rewrote the handling of keyframes arguments (see §5.10.3 Processing a keyframes argument and the definition of getKeyframes()) to be valid WebIDL. - In doing this the Keyframe, PropertyIndexedKeyframe and ComputedKeyframe dictionaries have been replaced with BaseKeyframe, BasePropertyIndexedKeyframe, and BaseComputedKeyframe respectively. - Handling of invalid values has been adjusted to preserve invalid values. The handling of these values was previously inconsistent. * Made the composite member of BaseKeyframe and BaseComputedKeyframe is no longer nullable. Rather than using a null value, the absence of this member indicates that the keyframe effect’s composite operation should be used. * Made the animate() method of the Animatable interface take a KeyframeAnimationOptions parameter so that the id of an Animation can be specified. * Corrected the type of options parameter to the animate() method to use an unrestricted double rather than a double. * Moved getAnimations() from the AnimationTimeline interface to the Document interface.
Received on Tuesday, 13 September 2016 04:19:44 UTC