CyanStars icon indicating copy to clipboard operation
CyanStars copied to clipboard

feat: 支持在 clip 中放入一些 key

Open memorydream opened this issue 1 year ago • 0 comments

添加了 IKey IKeyableClip 用于支持在 clip 中定义 keys
添加了 IKeyClipData<T> 用于定义创建 key 时使用的数据


添加了 IClipCreator<TTrack> 接口替代委托用于创建 clips :

  • KeyableClip 需要更多创建参数,这提供了更灵活的创建方案
  • 通过扩展方法创建对应的 AnonymousCreator,保留了原有的委托创建方式
  • TrackData 被移动至 creator 中,现在从 Timeline 创建 clip 时需要传入创建的 clip 数量

KeyableClip 的使用方式较为繁琐 :

  1. 使用 IKeyClipData 定义 key 的数据
  2. 使用 ITrackData<T> 定义 clip 数据,T 为实现了 IKeyClipData 的类型
  3. 根据签名分别实现 CreateClipCreateKey 方法

KeyClipCreator 使用与 TrackBuilder 类似的方法处理 key 的添加与排序,不需要额外处理


编辑: 如果框架层面不应该使用看上去有些繁琐的方式实现这样的功能,KeyableClip也可以作为外部扩展实现 (比如 CyanStars.Extension 之类的)
此 pr 也可以暂时搁置(或直接关闭),针对目前需求量不大的情况,可以改为在具体 Track 中实现,像 note track 那样

memorydream avatar Aug 11 '23 19:08 memorydream