Re: [csswg-drafts] [web-animations-2] AnimationWorklet integration - using GroupEffect and allowing control of localTime

I wanted to ping this thread in particular we are interested to start experimenting with this idea but only limited to AnimationWorklet for now.


I think the following API surface is safe to start with:
 
```webidl
interface WorkletGroupEffect {
  readonly sequence<AnimationEffect> children;
}

partial interface AnimationEffect {
   [Exposed=AnimationWorklet] attribute double localTime;
}
```

This is consciously a conservative API. In particular:

- Does not expose any constructor. The actual construction of group effect is done internally. 
- Does not allow nesting worklet group effects. So there can only be one nesting levels.
- Have an interesic duration of 0 (which cannot be changes by the author code). See flackr@ [comment](https://github.com/w3c/csswg-drafts/issues/2071#issuecomment-349195168) 
- Only exposed API surface is to iterate over children and set their local time
- setting local time is only exposed within animation worklet global scope. 
- The name is prefixed with "Worklet".
- It does not expose and inherit from `GroupEffect` so as not to require anything there but in future can inherit from `GroupEffect` once it becomes available.

I appreciate any feedback you may have on this plan.

To implement something like this we need to so some ground work in Blink for general group effects. This should also give us valuable implementation feedback on GroupEffects in general beyond their
application with worklet animations. 

**Note:** I choose to use a `readonly sequence<AnimationEffect>` instead of of  per this [issue](https://github.com/w3c/web-animations/issues/67)









-- 
GitHub Notification of comment by majido
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2071#issuecomment-392817821 using your GitHub account

Received on Tuesday, 29 May 2018 15:23:07 UTC